- 博客(2)
- 收藏
- 关注
原创 var在for循环中出现问题的原因以及var和let的区别
由于循环内部是异步代码会在for循环结束后才会执行,而var关键字没有块级作用域,只有函数作用域,每一个i都会被下一个i的值所覆盖,当异步代码执行时会沿着作用域链向上查找i的值,由于i最后的值为5,所以每次执行的结果都为5。而let关键字的作用域是块级作用域,在每次循环中都会产生一个新的块,每个块都是独立的作用域,不会互相影响,而每个块中i的值为当前循环i的值。最后执行的异步代码会在自己的块级作用域中找到i值。3.var声明的全局变量会成为window身上的一个属性而let不会。var和let的区别。
2022-08-20 00:46:32
372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人