JS 在 es6 中声明并分配多变量?

jon*_*jon 1 javascript variables declaration destructuring ecmascript-6

是否可以使用 es6 语法在同一行声明和分配多个变量?只是这里的例子,假设我需要给值“50” mX,mY,mXDZ,mYDZ。我该如何执行此操作?

let [mX,mY,mXDZ,mYDZ] = 50;
let mX,mY,mXDZ,mYDZ = 50; // !just why not! 
Run Code Online (Sandbox Code Playgroud)

我主要是在寻找可读性。

Ber*_*rgi 6

不,这不太可能。解构需要将具有多个值1的事物分配给多个目标,而不是单个值。然而你可以作弊:

function* repeat(x) { while(true) yield x; }

let [mX, mY, mXDZ, mYDZ] = repeat(50);
Run Code Online (Sandbox Code Playgroud)

除此之外,在多重声明中,每个变量都需要自己的初始化程序:

let mX = 50, mY = 50, mXDZ = 50, mYDZ = 50;
Run Code Online (Sandbox Code Playgroud)

当然,您也可以使用一个共享变量:

let val = 50, mX = val, mY = val, mXDZ = val, mYDZ = val;
Run Code Online (Sandbox Code Playgroud)

1:您还可以多次解构同一属性(let {val:mX, val:mY, val:mXDZ, val:mYDZ} = {val:50};),但它仍然需要一个对象。