js中for循环变量的作用域

阅读 180

2022-03-21

我觉得这个讲的不够详细,所以重新整理了一下

用var定义的

   var data = [];
    for(var k = 0; k < 2; k++){
            data[k] = function(){
                console.log(k);
            };
    }
    data[0]();
    data[1]();

//2
//2
上边代码的执行顺序展开来是这样的

用let定义的

   var data = [];
    for(let k = 0; k < 2; k++){
            data[k] = function(){
                console.log(k);
            };
    }
    data[0]();
    data[1]();

//0
//1
他的执行顺序是这样的

验证:下边两个代码运行速度差很多

总结:

let的块级作用域不单单只有一次,for循环的多次循环中,每一次循环都对应着一个单独的作用域

精彩评论(0)

0 0 举报