Shn*_*ick 3 javascript arrays syntax ecmascript-6 spread-syntax
我目前正在使用传播语法,遇到了意外问题。
以下代码段可以正常运行(并且不出所料),并且不会引发任何错误:
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);
});Run Code Online (Sandbox Code Playgroud)
但是,如果删除中间变量copy,我的代码似乎抛出错误:
const arr = [1, 2, 3, 4] // create array of numbers
[...arr].forEach(n => { // loop through array
console.log(n + 1);
});Run Code Online (Sandbox Code Playgroud)
如您所见,上面的代码片段引发了一个错误:
未捕获的SyntaxError:意外的令牌...
而第一个代码段则没有。为什么会这样呢?据我了解,我应该能够copy用包含但没有问题的文字数组替换(就像我在第二个片段中所做的那样)。
我希望第二个片段像第一个片段一样工作,并且不会抛出任何错误。
注意:[...arr]在这种情况下,我知道这似乎是多余的,我只是用它来演示我的问题。
添加分号,它可以完美地工作。
const arr = [1, 2, 3, 4];
[...arr].forEach(n => {
console.log(n + 1);
});Run Code Online (Sandbox Code Playgroud)
代码是在没有换行符的情况下进行评估的,如下所示:
const arr = [1, 2, 3, 4][...arr]
Run Code Online (Sandbox Code Playgroud)
导致您的错误。
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |