首页 > 解决方案 > 为什么我能够使用'let'在for循环内再次初始化和分配变量?

问题描述

for(let i = 0; i < 5; i++) {
    console.log(i); //outputs 0, 1, 2, 3, 4
}

这里↓有疑问

for(let i = 0; i < 5; i++) {
    let i = 2;
    console.log(i); //output 2 five times
}

为什么我能够初始化和分配i变量两次,因为我知道我们只能初始化和分配let一次声明的变量,然后可以重新分配另一个值。例如:

let j = 5;
let j = 6;
console.log(j); //error > Identifier 'i' has already been declared

let k = 5;
k = 6;
console.log(k); // output 6

标签: javascriptecmascript-6

解决方案


它类似于以下形式:

let j = 5;
{
  let j = 6;
  console.log(j); //6
}
console.log(j); //5

推荐阅读