let的特性:
1、在{ }中存在局部作用域;
2、没有变量提升;
const的特性:
1、不存在变量提升问题,只有定义之后才能使用此变量;
2、const定义的常量,无法被重新赋值;
3、当定义常量的时候,必须定义初始化,否则会报错;
4、const定义的常量也有块级作用域。
代码展示
for (let i = 0; i < 5; i++) {
const a = "hello";
console.log(a);
}
console.log(a);
输出结果
let的应用
当我们点击这3个按钮的时候都输出的是:“我是第3个按钮”
<body> <input type="button" value="按钮1"> <input type="button" value="按钮2"> <input type="button" value="按钮3"> <script type="text/javascript"> var btns = document.getElementsByTagName("input"); for (var i = 0; i < 3; i++) { btns[i].onclick = function () { console.log("我是第" + (i) + "个按钮"); }; } </script> </body>
es6的解决方式:使用let声明变量i
<body> <input type="button" value="按钮1"> <input type="button" value="按钮2"> <input type="button" value="按钮3"> <script type="text/javascript"> var btns = document.getElementsByTagName("input"); for (let i = 0; i < 3; i++) { btns[i].onclick = function () { console.log("我是第" + (i) + "个按钮"); }; } </script> </body>
输出结果