ES6中l(wèi)et 和 const 的新特性
在javascript中,我們都知道使用var來聲明變量。javascript是函數(shù)級作用域,函數(shù)內可以訪問函數(shù)外的變量,函數(shù)外不能訪問函數(shù)內的變量。本文給大家介紹ES6中l(wèi)et 和 const 的特性,具體內容如下所示:
let的特性:
1.不存在變量提升現(xiàn)象:即聲明前使用,報ReferenceError。適用于for循環(huán)計數(shù)器。
2.暫時性死區(qū):即在塊級作用域內使用let聲明變量,該變量只能在該作用域內使用。
3.不允許重復聲明:let聲明過的變量不能再次聲明,否則報錯。
const的特性:
1.不存在變量提升現(xiàn)象。
2.暫時性死區(qū)。
3.不可重復聲明。
4.聲明的是只讀常量,聲明時必須初始化。
5.本質保存的是內存地址,簡單類型數(shù)據(jù)的值就保存在這個地址中,復合類型數(shù)據(jù)在這個地址中保存的是一個指針,這個指針指向的對象可以改變,單指針不可改變。
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中l(wèi)et 和 const 的特性 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
ES6 Promise基礎用法(resolve、reject、then、catch,a
Promise是JavaScript中處理異步操作的對象,它有三種狀態(tài):Pending、Fulfilled、Rejected,使用new Promise創(chuàng)建Promise對象,通過resolve和reject改變狀態(tài),then和catch方法用于處理成功和失敗的結果,本文介紹ES6 Promise用法,感興趣的朋友一起看看吧2024-09-09JavaScript中定時控制Throttle、Debounce和Immediate詳解
大家可能都知道JavaScript遵循事件驅動的編程范例,這意味著一些行為可以激活一些響應,并且這些響應僅在發(fā)生特定的行為時才被激活。這篇文章將給大家詳細介紹JavaScript中的定時控制Throttle、Debounce和Immediate,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-11-11