【发布时间】:2020-11-26 04:42:47
【问题描述】:
对于正确声明和初始化多个相同类型的变量的正确方法,我有点困惑。所以它们实际上是他们自己的,而不是对他人/副本的引用。
我的研究使我得出以下结论,对吗?和/或有更好的方法:
var str1,str2,str3,arr1,arr2,arr3,obj1,obj2,obj3;
str1=str2=str3="foo";
arr1=arr2=arr2=[];
obj1=obj2=obj3={};
(为此我想使用 var,而不是 let 和 const)
【问题讨论】:
-
更大的问题是逐渐熟悉将单个数组或对象分配给多个变量意味着什么,它将被共享>
-
你做对了。更多列出了in my answer there(他们使用
const,但同样适用于var)。 -
@FZs 感谢您的建设性回答和链接。弹出它作为自己的答案,我会将其设置为接受的答案。
-
它们是共享的。
x = y = z = []将使 x、y 和 z 都指向同一个数组。如果您将元素推送/弹出到数组中,所有三个变量都将显示该更改。与对象相同。如果您更改对象的属性,则指向该对象的所有变量都会反映该更改。 -
F12并弹出浏览器开发工具并转到“控制台”选项卡,然后尝试以下操作:var x,y,z; x = y = z = []; x[0] = 'a'; console.log(x, y, z);
标签: javascript