什麼是 TDZ(Temporal dead zone)?

💡先講結論
意指 let 、const 宣告變數的「前方區域」,如果試圖在此區域取得值,則會出現 ReferenceError 的提示。

傳統的 var 宣告,若是先取值再宣告 ⇒ 不會出錯,會出現「Undefined」。
但是在 let、const 宣告的情況下,先取值再宣告的話 ⇒ 會出現「Uncaught ReferenceError:Cannot access ‘xxx’ before initialization」(依瀏覽器版本可能出現不同訊息),
也就是說 let、const 無法在初始化之前就取得該變數,因此開發者會很清楚不該這麼做~

let、const 一樣有「提升」的概念,只是沒辦法存取裡面的值而已!
而 var 是出現「undefined」,可以存到值,只是值是 undefined。

#javascript #變數與作用域







你可能感興趣的文章

ModernWeb'20 隨筆

ModernWeb'20 隨筆

ES6 解構賦值

ES6 解構賦值

03. 建立items resource

03. 建立items resource






留言討論