为什么我不能删除代码中的中间变量?
Why can't I remove the intermediate variable in my code?
我目前正在使用扩展语法 运行 遇到一个意外问题。
下面的代码片段有效(如预期),并且不会引发任何错误:
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);
});
如您所见,上面的代码片段抛出了一个错误:
Uncaught SyntaxError: Unexpected token ...
而第一个片段没有。 为什么会这样? 据我了解,我应该能够用它包含的文字数组替换 copy
并且没有问题(正如我在第二个片段中所做的那样)。
我希望第二个片段的行为与第一个片段相同,并且不会引发任何错误。
注意:我知道 [...arr]
在这种情况下似乎是多余的,我只是用它来证明我的问题。
加个分号就完美了。
const arr = [1, 2, 3, 4];
[...arr].forEach(n => {
console.log(n + 1);
});
正在评估没有换行符的代码 - 像这样:
const arr = [1, 2, 3, 4][...arr]
这导致了您的错误。
我目前正在使用扩展语法 运行 遇到一个意外问题。
下面的代码片段有效(如预期),并且不会引发任何错误:
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);
});
如您所见,上面的代码片段抛出了一个错误:
Uncaught SyntaxError: Unexpected token ...
而第一个片段没有。 为什么会这样? 据我了解,我应该能够用它包含的文字数组替换 copy
并且没有问题(正如我在第二个片段中所做的那样)。
我希望第二个片段的行为与第一个片段相同,并且不会引发任何错误。
注意:我知道 [...arr]
在这种情况下似乎是多余的,我只是用它来证明我的问题。
加个分号就完美了。
const arr = [1, 2, 3, 4];
[...arr].forEach(n => {
console.log(n + 1);
});
正在评估没有换行符的代码 - 像这样:
const arr = [1, 2, 3, 4][...arr]
这导致了您的错误。