站点图标 谷姐靓号网

请教一个基础问题 变量传值 到底是复制值还是绑定地址?-来去自如

Rate this post

JS里
a = 1;
b = a;

b是绑定了a的值内存地址
还是b从新开辟了一个内存复制了1这个值?

热议
推荐楼 dvbhack 2小时前

Javascript 的“原始值”(Primitive Values)是底层不可变,所以每一次传递都是复制值。

除了“原始值”以外的一切对象,赋值给某个变量时,实际上变量存储的都是对该对象的“引用”,所以传递的“值”就是引用。

所以 JavaScript 本质上一切都是按值传递,但是当变量指向对象时,该变量的“值”是对该对象的引用。因此可以理解为对象是按引用传递。跟一般意义上的“Pass by Reference”虽然是不一样的,但简单点就按照“Pass by Reference” 来理解也没有什么问题。

2楼 Jonathan52306 3小时前

应该是复制值
不然接下来你改动a b也要变

3楼 drivefuse 3小时前

基础类型是直接存值的。对象才是存的指针地址

4楼 c473432 3小时前

JavaScript 里面只有数组和对象是复制引用, 其他都是复制值.

5楼 ddydeyx 2小时前

类比C++,JS里其实都是复制值,不能传引用。

原始类型是传值,引用类型(对象)传指针

6楼 yanzhiling2002 2小时前

值传递和引用传递的区别,看看这块吧

8楼 来去自如 2小时前

Javascript 的“原始值”(Primitive Values)是底层不可变,所以每一次传递都是复制值。

除了“原始值” ...

多谢 试了PYTHON貌似也都是复制值

9楼 来去自如 2小时前

类比C++,JS里其实都是复制值,不能传引用。

原始类型是传值,引用类型(对象)传指针

多谢 试了PYTHON 也都是 复制值 PHP 用&可以变量引用传值 不用也是复制值

10楼 姜叔 2小时前

多谢 试了PYTHON 也都是 复制值 PHP 用&可以变量引用传值 不用也是复制值 ...

我的python是假的的吗?
a,b的内存地址是一样的

12楼 来去自如 1小时前

不管哪个语言,基础类型都可以视为值传递

多谢 大佬 了解了

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

退出移动版