let:
- 只局限于当前代码块
- 变量作用域不会被提升
- 在相同作用域下不能声明相同变量
- for循环体现let的父子作用域
例如:
var btns=document.getElementsByTagName ('button');
console.log(btns.length);
for (var i=0;i<btns.length;i++){
btns[i].οnclick=function(){
console.log(i);
alert(i);
}
}
将for循环的var改成let:然后就可以啦,也不需要利用闭包循环绑定事件因而造成变量会一直存在于内存当中,从而降低性能的尴尬。
var btns=document.getElementsByTagName ('button');
console.log(btns.length);
for (let i=0;i<btns.length;i++){
btns[i].οnclick=function(){
console.log(i);
alert(i);
}
}
const:
- 只局限于当前代码块
- 变量作用域不会被提升
- 在相同作用域下不能声明相同变量
- for循环体现let的父子作用域