在javascript中多次使用spread操作符?

前端之家收集整理的这篇文章主要介绍了在javascript中多次使用spread操作符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么不能多次使用运算符?
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,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相关文章