本书未发布
let 和 var 的区别
var 声明的范围是函数作用域,let 声明的是块作用域
var 声明的变量会存在作用域提升,let 不会
var 在全局作用域中声明的变量会成为 window 对象的属性,let 不会
var 可以重复声明同一个变量名,let 不行
在 for 循环中的情况不一样,如下:
for (var i = 0; i < 5; i++) { } console.log(i) // 5 for (let i = 0; i < 5; i++) { } console.log(i) // ReferenceError: i is not defined // ----- for (var i = 0; i < 5; i++) { setTimeout(() => console.log(i), 0) } // 会输出 5,5,5,5,5 for (let i = 0; i < 5; i++) { setTimeout(() => console.log(i), 0) } // 会输出 0,1,2,3,4
推荐文章: