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 會傳回什麼?
objectundefinedprimitivestring