为了账号安全,请及时绑定邮箱和手机立即绑定

声明并启动多个 javascript 变量

声明并启动多个 javascript 变量

泛舟湖上清波郎朗 2023-09-07 10:06:57
我对正确声明和初始化相同类型的多个变量的正确方法有点困惑。所以它们实际上是他们自己的,而不是对其他人/副本的引用。我的研究让我得出以下结论,这是正确的吗?和/或有更好的方法:var str1,str2,str3,arr1,arr2,arr3,obj1,obj2,obj3;str1=str2=str3="foo";arr1=arr2=arr2=[];obj1=obj2=obj3={};(为此我想使用 var,而不是 let 和 const)
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

有多种方法可以做到这一点。


重复该值:


var a = 1, b = 1, c = 1;


console.log(a, b, c) //1 1 1


相互分配变量(提示:将名称最短的变量放在第一位,然后重复该变量):


var a = 1, b = a, c = a;


console.log(a, b, c) //1 1 1


使用你的方法:


var a, b, c;

a = b = c = 1


console.log(a, b, c) //1 1 1


解构一个无限迭代器(这在变量数量非常大的情况下似乎很有用):


var [a, b, c] = (function*(v){while(true) yield v})(1);

                                                   // ^--- Value


console.log(a, b, c) //1 1 1

然而,当涉及到对象文字、函数的返回值和类似的东西时,它们的行为有所不同(这取决于您应该选择的用例)。

  • 解决方案 1. 将为每个变量创建不同的值

  • 解决方案 2.、3. 和 4. 将为所有变量分配相同的值

解决方案 4. 可以修改为分配不同的值:


var [a, b, c] = (function*(){while(true) yield [1,2,3] })();

                                            // ^^^^^^^--- Value


console.log(a, b, c) //[1,2,3] [1,2,3] [1,2,3]

查看完整回答
反对 回复 2023-09-07
  • 1 回答
  • 0 关注
  • 52 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信