JavaScript 有多種表示缺少值的方法。這個頁面
會說明兩種最常見的方法:null
和 undefined
資料類型。
null
null
關鍵字代表刻意定義缺少值。null
是基本資料,但 typeof
運算子傳回的 null
是物件。
這項錯誤
才是第一版 JavaScript
以避免網路無法正常運作。
typeof null
> object
您可以將變數定義為 null
而是反映日後指派給它的值
或是明確缺少的值您也可以指派 null
值來清除舊值。
undefined
undefined
是指派給變數的原始值
或是針對最近宣告的
不會傳回有意義的值舉例來說,當您宣告
使用瀏覽器開發人員控制台中的函式:
function myFunction() {}
> undefined
函式會在其 return
陳述式時明確傳回 undefined
不會傳回任何值。
(function() {
return;
}());
> undefined
比較「null
」和「undefined
」
雖然 undefined
和 null
有部分重疊的功能,但
可以看出不同用途以最嚴格來說,null
代表一個值
先前可定義為「空白」undefined
代表缺少任何指派值。
null
和 undefined
大致相同,但不等於。
鬆散運算子會將不同型別的運算元強制轉換為布林值
值,因此 null
和 undefined
兩者皆可 false
。嚴格等號運算子
會視為不同資料類型的運算元不相等。
null == undefined
> true
null === undefined
> false
與保留關鍵字 null
不同,undefined
是
「全域物件」。這是設計
JavaScript 開發初期做出了許多決定,而舊版瀏覽器還是
完全覆寫 undefined
。在新式瀏覽器中
將 undefined
做為非全域範圍內的 ID,並覆寫其在
宣告的範圍請勿使用 undefined
做為 ID。這項服務
可能會導致非預期的行為,並可能混淆日後的維護人員
程式碼集
隨堂測驗
typeof null
會傳回什麼?
object
undefined
primitive
string