是否可以用es6语法在同一行中声明和赋值多个变量?这里仅举一个例子,假设我需要给mX,mY,mXDZ,mYDZ赋值"50“。我怎么能做到这一点?
let [mX,mY,mXDZ,mYDZ] = 50;
let mX,mY,mXDZ,mYDZ = 50; // !just why not! 我主要是寻找可读性。
发布于 2018-04-07 14:31:50
您可以声明所有变量,然后在单独的语句中初始化它们:
let mX,mY,mXDZ,mYDZ;
mX = mY = mXDZ = mYDZ = 50;在变量声明语句(let、var或const)中,语法是这样的,每个变量都可以有一个初始化表达式。没有从一个表达式中进行多个初始化的规定。
通过破坏,您可以这样做:
let [mX, mY, mXDZ, mYDZ] = [50, 50, 50, 50];但这在我看来并不是“更好”,至少在可读性方面是这样。似乎很容易出错。
很重要的一点是
let mX = mY = mXDZ = mYDZ = 50;绝对不是正确的。这句话被解析为
let mX = (mY = mXDZ = mYDZ = 50);这将创建一个局部变量("mX")和三个隐式全局变量。在“严格”模式下,这将是一个错误;在非严格模式下,它也是一个错误,但很难调试。
https://stackoverflow.com/questions/49708393
复制相似问题