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