javascript - 声明并启动多个 javascript 变量
问题描述
对于正确声明和初始化多个相同类型的变量的正确方法,我有点困惑。所以它们实际上是他们自己的,而不是对他人/副本的引用。
我的研究使我得出以下结论,对吗?和/或有更好的方法:
var str1,str2,str3,arr1,arr2,arr3,obj1,obj2,obj3;
str1=str2=str3="foo";
arr1=arr2=arr2=[];
obj1=obj2=obj3={};
(为此我想使用 var,而不是 let 和 const)
解决方案
我之前回答过一个类似的问题。这是我的答案(相应修改):
有多种方法可以做到这一点。
重复值:
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]
推荐阅读
- julia - 抑制 julia 的 REPL 中的包编译输出
- python - TypeError:无法转换“文本”:无法理解数据类型
- html - Bootstrap / CSS - 输入、按钮和选择在同一行
- javascript - 如何存储来自动态 div 的数据
- python - 生存模型的 XGBoost (Python) 预测
- c# - 从 Stream 创建 FormFile
- django - 范围和 lte/gte django 过滤器之间的区别
- gradle - 如何在 build.gradle 中声明 gradle 5.0 版?
- azure - 如何为 Azure 函数指定 web.config 中通常包含的内容?
- php - 使用 $_FILE 图像上传更新 SQL Server 表中的 VARBINARY(MAX) 列