let与var的区别

1.let不存在变量提升,即不会进行预解析
2.使用let不能重复定义相同的变量
3.用let创建变量会产生一个块级作用域

let的应用场景

当用for循环来绑定事件监听时,使用let会比用闭包写更加简洁
1.使用闭包写

  for(var i=0; i<btn.length; i++){
      (function(i){
        btn[i].onclick = function () {
          alert(i)
        }
    })(i)
   }

在绑定事件之前先创建一个立即执行函数,将 i 传进去。
最后生成了3个闭包

2.使用let关键字写

   for(let i=0; i<btn.length; i++){
     btn[i].onclick = function (){
       alert(i)
     }
   }

使用let在进入循环时会创建一个作用域,最后会有三个作用域来保存 i 变量

const关键字

1.作用:用来保存不能被改变的常量,常量一般用大写字母表示
2.使用const定义一个常量后,该常量不能够再次被修改


XiaoYu
7 声望0 粉丝

如其所是