0

我想深入了解 JS 中的 for...of 循环和解构赋值。以下代码在第 3 行引发错误:“ReferenceError: y is not defined”,但“y”是在 for 循环语句之前定义的。有什么问题?

let arr = [ ];
let y = 8;
for (let { x = 2, y } of [{ x: 1 }, 2, { y }]) {  
    arr.push(x, y);
}
console.log(arr);
4

1 回答 1

2

这似乎y是在块中的时间死区for

不在y对象初始化中使用可以解决问题:

let arr = [];
let z = 8;
for (let { x = 2, y } of [{ x: 1 }, 2, { y: z }]) {  
  arr.push(x, y);
}
console.log(arr);

于 2019-01-06T10:43:14.760 回答