let的特性:
一、在{ }中存在局部做用域;javascript
二、没有变量提高;java
const的特性:
一、不存在变量提高问题,只有定义以后才能使用此变量;es6
二、const定义的常量,没法被从新赋值;spa
三、当定义常量的时候,必须定义初始化,不然会报错;code
四、const定义的常量也有块级做用域。blog
代码展现ip
for (let i = 0; i < 5; i++) {
const a = "hello";
console.log(a);
}
console.log(a);
输出结果作用域
let的应用
当咱们点击这3个按钮的时候都输出的是:“我是第3个按钮”get
<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>
输出结果input