mad*_*ox2 18 javascript ecmascript-6 spread-syntax
为什么不能多次使用传播运算符?
let arr = [[[1, 2, 3]]];
console.log(arr); // Array [ Array[1] ]
console.log(...arr); // Array [ Array[3] ]
console.log(...(...arr));
// SyntaxError: expected '=>' after argument list, got ')'
Run Code Online (Sandbox Code Playgroud)
我希望:
console.log(...(...arr)); // Array [ 1, 2, 3 ]
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 17
为什么不能多次使用传播运算符?
...
不是运营商.(...arr)
是无效的JavaScript....
只允许在数组文字和参数列表中,但这些是语法的特殊形式(请注意...
下面的生产规则).
ArrayLiteral :
[ Elision_opt ]
[ ElementList ]
[ ElementList , Elision_opt ]
ElementList :
Elision_opt SpreadElement
ElementList , Elision_opt SpreadElement
SpreadElement:
... AssignmentExpression
Run Code Online (Sandbox Code Playgroud)
Arguments :
( )
( ArgumentList )
ArgumentList :
AssignmentExpression
... AssignmentExpression
ArgumentList , AssignmentExpression
ArgumentList , ... AssignmentExpression
Run Code Online (Sandbox Code Playgroud)