所以,也許您正在考慮var 與let 和const 之間的基本區別:「const 僅用於讀取,let 是可變的,var 兩者都是 ” 唯一的區別是ES6 引入了const和let 和 var 是一個 老式語法。
嗯,一點也不。
1.- 在這裡,很明顯我們不能在聲明之前呼叫 let value
2.- 如果我們使用 var 來取代 let:
,情況可能會改變
是的,也許它看起來像是var使用的額外力量。
這稱為提升,一個允許您在宣告變數之前使用變數的過程。
3.- 讓我們考慮另一個例子:
儘管在這個例子中var也是提升,這裡我們面對的是TDZ。
它被定義為變數不可存取的狀態,儘管它們在作用域內,但尚未聲明。
因此在提升過程中,由於TDZ,預設情況下JS 回傳var 值初始化為未定義,但使用let 或const 它傳回一個錯誤,指出變數尚未宣告。因此,這對於捕獲錯誤非常有幫助,並迫使您在聲明變數之前避免使用變數
(這就是為什麼在編碼時考慮使用像 ESLint 這樣的報告標尺來避免一些錯誤很重要)。
提升始終存在,因此盡可能使用 let 和 const 很重要,這可以避免未定義的錯誤並讓您更快地捕獲它們。
** ES6
以上是提升:面向顳死區的詳細內容。更多資訊請關注PHP中文網其他相關文章!