一丶letjavascript
1.使用let聲明一個變量,會生成一個獨立的做用域,比var的做用域更爲嚴謹,好比for循環java
var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10
var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6
2.暫時性死區:在代碼塊內,使用let
命令聲明變量以前,該變量都是不可用的。這在語法上,稱爲「暫時性死區」(temporal dead zone,簡稱 TDZ)。數組
3.不能重複性聲明: 同一做用域下,var重複聲明不會報錯,let和const重複聲明會報錯。spa
二丶const指針
1.const聲明一個只讀變量,不可更改值,不然則會報錯,但對象和數組能夠更改內存指針。好比code
const foo = {}; // 爲 foo 添加一個屬性,能夠成功 foo.prop = 123; foo.prop // 123
const a = []; a.push('Hello'); // 可執行 a.length = 0; // 可執行 a = ['Dave']; // 報錯