我目前正在使用扩展语法并遇到了一个意外的问题。
下面的代码片段有效(如预期),并且不会引发任何错误:
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);
});
正如你所看到的,上面的代码片段抛出了一个错误:
未捕获的语法错误:意外的标记...
而第一个片段则不然。为什么会发生这种情况?据我了解,我应该能够替换copy
使用文字数组,它包含并且没有问题(正如我在第二个片段中所做的那样)。
我希望第二个片段的行为与第一个片段相同,并且不会引发任何错误。
Note: 我知道[...arr]
在这种情况下似乎是多余的,我只是用它来演示我的问题。
添加分号即可完美运行。
const arr = [1, 2, 3, 4];
[...arr].forEach(n => {
console.log(n + 1);
});
代码在没有换行符的情况下被评估 - 像这样:
const arr = [1, 2, 3, 4][...arr]
这导致了你的错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)