在es6中,暫時性死區是一個語法錯誤,是指let和const指令使區塊形成封閉的作用域,使用let和const指令宣告變數之前,該變數都是不可用的,es6給這種錯誤設定了一個專有名詞叫暫時性死區。
本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
暫時性死區:Temporal Dead Zone 簡稱TDZ
在ES6中, 引入了let 和const 兩個新的命令, 並且使用這兩個命令定義的變數不存在變數提升, 且使用let和const聲明變數之前, 該變數都是不可用的, 這在語法上被稱為暫時性死區
console.log(a) let a = 100 // ReferenceError
什麼意思呢? 就是說es6給這種錯誤設定了一個專有名詞叫暫時性死區, 其實它就是簡簡單單的指的是一個語法錯誤而已
當程式的控制流程在新的作用域(module function 或block 作用域)進行實例化時,在此作用域中用let/const宣告的變數會先在作用域中被建立出來,但因此時還未進行詞法綁定,所以是不能被存取的,如果訪問就會拋出錯誤。因此,在這運行流程進入作用域創建變量,到變量可以被訪問之間的這段時間,就稱之為暫時死區。
如果你還是記不住,那麼只需理解下面這句話即可:
ES6規定,let/const指令會使區塊形成封閉的作用域。若在宣告之前使用變量,就會報錯。
總之,在程式碼區塊內,使用 let 指令宣告變數之前,變數都是不可用的。
這在文法上,稱為 「暫時性死區」( temporal dead zone,簡稱 TDZ)。
【相關推薦:javascript影片教學、web前端】
以上是es6中什麼是暫時性死區的詳細內容。更多資訊請關注PHP中文網其他相關文章!