let 和 var 的区别

未匹配的标注
  1. var 声明的范围是函数作用域,let 声明的是块作用域

  2. var 声明的变量会存在作用域提升,let 不会

  3. var 在全局作用域中声明的变量会成为 window 对象的属性,let 不会

  4. var 可以重复声明同一个变量名,let 不行

  5. 在 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

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~