let的特性:
1、不存在變數提升現象:即宣告前使用,報ReferenceError。適用於for循環計數器。
2、暫時性死區:即在區塊層級作用域內使用let宣告變數,且該變數只能在該作用域內使用。
3、不允許重複宣告:let宣告過的變數不能再聲明,否則報錯。
const的特性:
1、不存在變數提升現象。
2、暫時性死區。
3、不可重複宣告。
4、宣告的是唯讀常數,宣告時必須初始化。
5、本質保存的是記憶體位址,簡單型別資料的值就保存在這個位址中,複合型別資料在這個位址中保存的是一個指針,這個指標指向的物件可以改變,單指針就不可改變。
cost foo = {}; // 可以改变foo的属性 foo.prop = 123; foo.prop //123 // 不可以使foo指向别的对象 foo = {}; //TypeError: "foo" is read-only
凍結物件:
// 彻底冻结 var constantize = (obj) => { Object.freeze(obj); Object.keys(obj).forEach( (key, i) => { if( typeof obj[key] === 'object' ){ constantize( obj[key] ); } }); }
以上是let 與 const 的特徵的詳細內容。更多資訊請關注PHP中文網其他相關文章!