var
使用 var 声明的变量具有函数作用域或全局作用域(如果在函数外部声明)。这意味着在 for 循环外部,仍然可以访问到使用 var 声明的循环变量 i。
javascript
for(var i = 0; i < 3; i++){
console.log(i)
}
console.log(i)
0
1
2
3
let
使用 let 声明的变量具有块作用域,它只在其被声明的块(在这种情况下是 for 循环体)内部可见。一旦退出循环,i 变量就不再可用。
javascript
for(let j = 0; j < 3; j++){
console.log(j)
}
console.log(j)
0
1
2
ReferenceError: j is not defined