NaN(Not a Number)。
如果JavaScript運算結果為無法明確定義的數值,便會產生NaN。
它代表無法表示的數值。
發生以下幾種情況,會產生NaN:
以上都為NaN,依照一般數學邏輯來看待,結果是顯而易見的,因為無法計算出一個明確的答案。
NaN有2個很別的特徵:
以下幾個方式可以用來判斷是否為NaN。
isNaN( ),引數為NaN、String、Object時,回傳true。
但上面的方式還不夠明確,我們可以利用NaN的特性:不等於任何值,包括本身。
if(x!==x){
}
只有在x為NaN時,結果才為True。
當一個數值太大或太小,已超出可顯示範圍的時候,就會以Infinity表示,正無限大為Infinity,負無限大為-Infinity。
10的1024次方已經超出可表示的範圍了,所以回傳值為Infinity。
除以0,也會產生Infinity。
因為它本身已經定義為大/小到無法表示的值了,所以對Infinity做四則運算是沒有意義的:
isFinite( ),能讓我們檢查是否為有效的數值或可以轉型為Number的值:
參考來源:
JavaScript大全
Speaking JavaScript|簡明完整的 JS 精要指南