一、Undefined
Undefined 是 JavaScript 的基本數據類型之一,這個類型只有一個值,就是 undefined。
已經聲明但未初始化的變量,其值就爲undefined。
(未聲明的變量和已聲明未初始化的變量,其 typeof 都返回 undefined)
二、Null
Null 是第二個只有一個值 null 的數據類型,從邏輯角度看,null 值表示一個空對象指針,即 typeof(null) 返回"object"。
如果定義的變量在將來用於保存數據,在聲明時,應該初始化爲null。這樣一來,通過檢查null 值就知道相應的變量是否已經保存了一個對象的引用。
(undefined 值派生自null 值。)
alert(undefined == null) //true
三、NaN
NaN,即非數值,是一個特殊的數值,表示一個本該返回數值的操作沒有返回數值的情況。例如:任何數值 / 0。
1、NaN 有兩個特點:
(1)任何涉及 NaN 的操作都會返回NaN。
(2)NaN 和任何值都不相等,包括NaN本身。
2、isNaN( ):
接受一個任意類型的參數,判斷該參數是否爲 NaN。
isNaN( ) 的參數如果不是數值,會先嚐試轉換爲數值,不能轉換則返回true。
alert(isNaN(NaN)) //true
alert(isNaN(10)) //false
alert(isNaN("10")) //false
alert(isNaN("blue")) //true(不可轉換)
alert(isNaN(true)) //false(可以被轉換爲數值1)
(在基於對象調用 isNaN() 函數時,會首先調用對象的 valueOf() 方法,然後確定該方法返回的值可以轉換爲數值。如果不能,再基於這個返回值調用 toString() 方法,再測試返回值)