js中l(wèi)et、var、const區(qū)別

塊級作用域綁定的let const 為JavaScript引入了詞法作用域,它們聲明的變量不會提升,而且只可以在聲明這些變量的代碼中使用。

這一新特性還存在一個副作用,即不能在聲明變量前訪問它們,就算用typeof這樣安全的操作符也不行。在聲明前訪問塊級作用域會導致報錯,因為綁定在臨時死區(qū)(TDZ)中。

循環(huán)中的使用。在for-in for-of循環(huán)中,let和const都會每次迭代時創(chuàng)建新綁定,從而使循環(huán)體內(nèi)創(chuàng)建的函數(shù)可以訪問到相應(yīng)迭代的值,而非最后一次迭代后的值(像使用var那樣)。let在for循環(huán)中同樣如此,但在for循環(huán)中使用const聲明則可能引發(fā)錯誤。

當前使用塊級綁定的最佳實踐是:默認使用const,只在確實需要改變變量的值時使用let。這樣就可以在某種程度上實現(xiàn)代碼的不可變,從而 一些錯誤的產(chǎn)生。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容