在javascript中,我們都知道使用var來聲明變量。javascript是函數級作用域,函數內可以訪問函數外的變量,函數外不能訪問函數內的變量。本文給大家介紹ES6中let 和 const 的特性,具體內容如下所示:
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] ); } }); }
總結
以上所述是小編給大家介紹的ES6中let 和 const 的特性 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com