2013-10-08 49 views
0

爲什麼在javascript中undefined被認爲是有限的,而null卻不是?爲什麼isFinite(undefined)!= isFinite(null)?

這是一個非常基本的問題,它阻礙了我的googlefoo(太多的噪音)。

isFinite(undefined); // false 
isFinite(null); // true 

我不明白,因爲我期望null和undefined以相同的方式處理。

回答

1

isFinite的(數字)如果參數脅迫爲NaN

返回FALSE,+∞,或-∞,否則返回真。使用​​和

isFinite轉換輸入:

Number(undefined); //== NaN 
Number(null); //== 0 

就是這個道理undefined是假的,空是真實isFinite的。

如果你嘗試:

isFinite(!undefined); // true 

因爲不確定是楠上否定它,它轉換爲1,這是有限的。

相關問題