如下两段代码,看起来没什么区别,但是实际运行效果却不一样
for (let i = 0; i < 10; i++) {
console.log("for:" + i);
setTimeout(() => {
console.log("setTimeout:" + i);
}, 1000);
}
输出:

for (var i = 0; i < 10; i++) {
console.log("for:" + i);
setTimeout(() => {
console.log("setTimeout:" + i);
}, 1000);
}
输出:

在JavaScript中,使用关键字let和var声明变量的方式在for循环中会导致不同的行为。
for (let i = 0; i < 10; i++):
for (var i = 0; i < 10; i++):
综上所述,使用let声明可以更好地控制变量的作用域,并避免一些常见的问题。因此,建议在JavaScript中优先使用let而不是var来声明循环变量。