为什么不能多次使用传播运算符?
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 ')'
我希望:
console.log(...(...arr)); // Array [ 1, 2, 3 ]
最佳答案
Why can't spread operator be used multiple times?
...
不是运算符。 (...arr)
不是有效的 JavaScript。 ...
只允许在数组字面量和参数列表中使用,但它们是特殊形式的语法(请注意下面产生式规则中的 ...
)。ArrayLiteral
ArrayLiteral :
[ Elision_opt ]
[ ElementList ]
[ ElementList , Elision_opt ]
ElementList :
Elision_opt SpreadElement
ElementList , Elision_opt SpreadElement
SpreadElement:
... AssignmentExpression
Arguments
Arguments :
( )
( ArgumentList )
ArgumentList :
AssignmentExpression
... AssignmentExpression
ArgumentList , AssignmentExpression
ArgumentList , ... AssignmentExpression
关于javascript - 在javascript中多次使用扩展运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35019557/