JavaScript变量在forLoop中使用setTimeout进行提升

时间:2017-09-28 10:22:44

标签: javascript variables hoisting

(function() {
    var index = 0;
    var length = 5;
    for (var index = 0; index < length; index++) {
        setTimeout(function() {
            console.log(index);
        }, 100);
    }
})();

此代码输出55555

如果我将var更改为let,则输出12345

我明白让我们阻止索引变量被提升到函数范围的顶部但是,我不明白这是如何改变答案的。

0 个答案:

没有答案