【发布时间】:2019-09-14 10:47:37
【问题描述】:
我目前正在使用扩展语法,但遇到了意外问题。
下面的 sn-p 工作(如预期),并且不会抛出任何错误:
const arr = [1, 2, 3, 4] // create array of numbers
const copy = [...arr] // make a shallow copy of the array
copy.forEach(n => { // loop through array
console.log(n + 1);
});
但是,如果我删除中间变量copy,我的代码似乎会抛出错误:
const arr = [1, 2, 3, 4] // create array of numbers
[...arr].forEach(n => { // loop through array
console.log(n + 1);
});
如你所见,上面的代码sn -p抛出了一个错误:
Uncaught SyntaxError: Unexpected token ...
而第一个 sn-p 没有。 为什么会发生这种情况? 据我了解,我应该能够将 copy 替换为它包含的文字数组并且没有问题(就像我在第二个 sn-p 中所做的那样)。
我希望第二个 sn-p 的行为与第一个 sn-p 一样,并且不会引发任何错误。
注意:我知道[...arr] 在这种情况下似乎是多余的,我只是用它来证明我的问题。
【问题讨论】:
标签: javascript arrays ecmascript-6 syntax spread-syntax