【发布时间】:2020-09-29 12:31:54
【问题描述】:
const array = [1, 2, 3, 4];
for (var index = 0; index < array.length; index++) {
setTimeout(() => {
console.log("I am at index " + index);
});
}
当我在 for 循环中使用“var”关键字时,我得到了输出
I am at index 4
I am at index 4
I am at index 4
I am at index 4
但是当我在 for 循环中使用“let”关键字时,
const array = [1, 2, 3, 4];
for (let index = 0; index < array.length; index++) {
setTimeout(() => {
console.log("I am at index " + index);
});
}
I am at index 0
I am at index 1
I am at index 2
I am at index 3
谁能告诉我这里发生了什么?
【问题讨论】:
-
你好@darshan,这个问题之前有人问过,你可以在stackoverflow.com/questions/48002533/let-vs-var-in-javascript查看答案
标签: javascript arrays var let