ES6语法如何在同一行声明并赋值多个变量?(附需求示例)
ES6同一行声明并赋值多个变量的正确姿势
当然可以用ES6语法在同一行完成多变量的声明和赋值啦!先帮你分析下你之前尝试的两种写法为啥行不通:
let [mX,mY,mXDZ,mYDZ] = 50;:数组解构要求右侧是可迭代对象(比如数组、字符串),但50是数值类型,无法被解构,所以会报错。let mX,mY,mXDZ,mYDZ = 50;:这种写法里,只有最后一个变量mYDZ被赋值为"50",前面的mX、mY、mXDZ仅完成声明,值为undefined,不符合所有变量都赋值的需求。
下面给你两种符合要求的实现方式,兼顾可读性和ES6特性:
方式1:直观的逗号分隔赋值(可读性优先)
如果变量数量不多,直接在一行内为每个变量显式赋值,是最直观易懂的写法:
let mX = "50", mY = "50", mXDZ = "50", mYDZ = "50";
方式2:ES6数组解构 + Array.fill()(简洁性优先)
如果变量较多,不想重复写同一个值,可以借助Array.fill()生成指定长度且元素全为目标值的数组,再通过解构赋值分配给各个变量:
let [mX, mY, mXDZ, mYDZ] = Array(4).fill("50");
这里Array(4)创建了长度为4的数组,fill("50")将数组所有位置填充为"50",解构时会把数组的每个元素对应赋值给左侧的变量,完美实现批量赋值,代码也很简洁。
两种方式都符合ES6规范,你可以根据变量数量和代码风格偏好选择~
内容的提问来源于stack exchange,提问作者jon
相关产品推荐
相关产品推荐

