首頁 > web前端 > js教程 > 提升:面向顳死區

提升:面向顳死區

DDD
發布: 2024-12-13 12:44:11
原創
626 人瀏覽過

Hoisting: facing Temporal dead zone

所以,也許您正在考慮var 與let 和const 之間的基本區別:「const 僅用於讀取,let 是可變的,var 兩者都是 ” 唯一的區別是ES6 引入了constletvar 是一個 老式語法。
嗯,一點也不。


分析一些例子

1.- 在這裡,很明顯我們不能在聲明之前呼叫 let value

2.- 如果我們使用 var 來取代 let:
,情況可能會改變

是的,也許它看起來像是var使用的額外力量。
這稱為提升,一個允許您在宣告變數之前使用變數的過程。

3.- 讓我們考慮另一個例子:

儘管在這個例子中var也是提升,這裡我們面對的是TDZ


顳死區

它被定義為變數不可存取的狀態,儘管它們在作用域內,但尚未聲明。


感謝 ES6*

因此在提升過程中,由於TDZ,預設情況下JS 回傳var 值初始化為未定義,但使用letconst 它傳回一個錯誤,指出變數尚未宣告。因此,這對於捕獲錯誤非常有幫助,並迫使您在聲明變數之前避免使用變數

(這就是為什麼在編碼時考慮使用像 ESLint 這樣的報告標尺來避免一些錯誤很重要)。


結論

提升始終存在,因此盡可能使用 let 和 const 很重要,這可以避免未定義的錯誤並讓您更快地捕獲它們。


** ES6

以上是提升:面向顳死區的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板