传播语法不能破坏数组

时间:2018-03-05 14:09:37

标签: javascript rest ecmascript-6 spread-syntax

我是Javascript的新手并且很困惑为什么以下内容无效?

var array = [1, 2, 3, 4]
var spread = ...array;

我原以为它会成为1, 2, 3, 4。相反,它给出了错误消息Unexpected token ...。任何人都可以向我解释这个吗?

非常感谢你!

3 个答案:

答案 0 :(得分:3)

这是正确的方法,但是你没有做到这一点。

var array = [1, 2, 3, 4]
var spread = [...array];
console.log(spread);

如果你真的想要破坏那个数组,你需要解构赋值

var array = [1, 2, 3, 4]
var [one, two, three, four] = array;

console.log(one, two, three, four);

答案 1 :(得分:1)

正确的做法是:

var array = [1, 2, 3, 4]
var spread = [...array];

答案 2 :(得分:1)

使用[...iterableObj, '4', 'five', 6]; 的语法是:

对于函数调用:

let objClone = { ...obj };

对于数组文字或字符串:

spread

对象文字(ECMAScript 2018中的新内容):

[]

因此,根据语法,对于使用var array = [1, 2, 3, 4] var spread = [...array]; console.log(spread);的数组,您缺少方括号{{1}}:



{{1}}