let 與 const 暫時性死區(TDZ)
- let 一樣會有創造階段
- 但是從創造到執行階段會出現暫時性死區(TDZ),這個區域無法呼叫該變數
- 有創造到執行的概念,但是它不會預先出現
undefined
而是會跳出Error
文件不會表明這與
var
的hoisting
相同
1 | { |
這邊會跳出錯誤 ↓
在裡面其實它的執行是這樣的 ↓ ↓ ↓
1 | // 創造階段 |
接下來看下一個範例
1 | console.log(typeof a); |
來看看差別在哪裡 ↓ ↓ ↓
這邊可以看到我們並沒有辦法在 let
宣告之前去取得它,就算是 typeof
也是會跳錯的哦!