javascript - 在javascript中多次使用扩展运算符?

标签 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 ')'

我希望:
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/

相关文章:

node.js - 如何将扩展运算符与 'this' 一起使用?

Javascript - 添加图像

javascript - 添加跨域 header 后 FFmpeg.wasm 停止工作

javascript - jQuery 字符串到日期问题

javascript - ES6 模块范围

reactjs - 组件定义 React 中 Babel 语法错误

javascript - 这里如何使用扩展语法将数字转换为字符串数组?

javascript - 无法使用 webdriverio 单击网页按钮

javascript - 搜索数组中的对象并更新是否存在或添加

javascript - 对象传播语法永远不会抛出错误吗?