ES 6

1.let const

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 10

由于这里的i是var申明的,全局都是这一个i,当循环结束 i=10,注意最后面的i++,所以最后输出的是10.

上面改成let,则不会,因为在每一个作用域内,i都是单独的。

 2.不存在变量提示

console.log(foo);
var foo = 3

 

posted @ 2023-03-06 17:33  vba是最好的语言  阅读(66)  评论(0编辑  收藏  举报