學習 JS,都知道語言裏包含一個 Undefined 類型,該類型中只包含一個值 undefined
。 咱們可能寫過這樣的代碼:javascript
let sometThing = undefined
複製代碼
這裏的「undefined」實際上是個變量,何以見得?下圖爲證: html
由於歷史緣由, ECMAScript 標準並無把 undefined 列爲保留字。也就是,咱們日常裏使用的 undefined 實際上是全局對象window
上的一個屬性,能夠理解成一個變量。只不過這個變量的值是
undefined
,經過獲取它的屬性描述符,知道它是不可寫入的。
但也不能徹底避免問題的出現:java
上圖裏,在 foo 函數內部,咱們定義了一個變量 undefined,以後再訪問 undefined 獲得的就不是 undefined
值,而是字符串 "Oops"
了。函數
那如何避免這個問題呢?能夠使用 void
運算符,根據定義,它老是返回 undefined
值。學習
void 0 // undefined
複製代碼
(完)spa