В настоящее время я работаю с синтаксисом распространения и столкнулся с неожиданной проблемой.
Приведенный ниже фрагмент работает (как и ожидалось) и не выдает никаких ошибок:
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: Неожиданный токен ...
В то время как первый фрагмент не имеет. Почему это происходит? Насколько я понимаю, я мог бы заменить copy
на буквенный массив, который он содержит и не имеет проблем (как я делал во втором фрагменте).
Я ожидаю, что второй фрагмент будет вести себя как первый фрагмент, и не будет выдавать никаких ошибок.
Примечание : я знаю, что [...arr]
кажется избыточным в этомслучай, я просто использовал это, чтобы продемонстрировать свою проблему.