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定义一个常量后,该常量不能够再次被修改
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。