JavaScript - 在 for 循环中使用 let 和 var 关键字声明迭代变量有什么区别?

JavaScript - What is the difference between declaring a iteration variable using a let versus a var keyword inside a for-loop?

在 for 循环体中使用 let 和在 JavaScript for 循环体中使用 var 有什么区别?它们的工作方式不同吗?为什么?

示例:

使用 let

for (let i = 0; i < 10; i++) {

}

使用变量

for (var i = 0; i < 10; i++) {

}

这些在幕后的工作方式是相同的还是不同的,实际上有一个更好吗?

这种差异是否也适用于 while 循环和 do-while 循环?

let 是块作用域而 var 不是。 对于 let,您不能在 forloop 主体之外使用 i。 使用 var(函数作用域或全局作用域)你可以。

for (var j = 0; j < 10; j++) {

}

console.log(j);


for (let i = 0; i < 10; i++) {

}

console.log(i);

您可以在 chrome 控制台中使用 var 运行 for 循环,并且会看到 i 已附加到 window 对象.