小编Nae*_* M.的帖子

在 JavaScript for 循环中设置变量

我检查了有关同一问题的问题和答案,但没有一个回答我的问题,所以请不要丢弃我的问题。

当“i”被声明为 let 变量时,对于每次迭代,JS 都会创建一个新的“i”绑定,因此 SetTimout 的每个函数在其闭包内都有自己的“i”(与“i”的情况相反)被声明为 var 变量,其中所有 SetTimout 函数在其闭包中共​​享相同的绑定)。问题是:如果 JS 在使用 let 时在 for 循环的每次迭代中创建一个新的“i”绑定,那么增量值如何传输到 i 的新绑定?

i 的新绑定如何用 i 的当前值实例化?

我们是否真的在不同范围内有两个具有不同值的 i 绑定(如果是),这些范围是什么?

提前致谢

function a() {

    for (let i = 0; i < 3; i++) {
        setTimeout(function () { console.log(i) }, i * 1000);
    }
}

a();
Run Code Online (Sandbox Code Playgroud)

javascript var let

2
推荐指数
1
解决办法
2088
查看次数

标签 统计

javascript ×1

let ×1

var ×1