爲什麼在javascript中undefined被認爲是有限的,而null卻不是?爲什麼isFinite(undefined)!= isFinite(null)?
這是一個非常基本的問題,它阻礙了我的googlefoo(太多的噪音)。
isFinite(undefined); // false
isFinite(null); // true
我不明白,因爲我期望null和undefined以相同的方式處理。
爲什麼在javascript中undefined被認爲是有限的,而null卻不是?爲什麼isFinite(undefined)!= isFinite(null)?
這是一個非常基本的問題,它阻礙了我的googlefoo(太多的噪音)。
isFinite(undefined); // false
isFinite(null); // true
我不明白,因爲我期望null和undefined以相同的方式處理。
這是因爲Number(null) === 0
。
isFinite的(數字)如果參數脅迫爲NaN
返回FALSE,+∞,或-∞,否則返回真。使用和
isFinite
轉換輸入:
Number(undefined); //== NaN
Number(null); //== 0
就是這個道理undefined是假的,空是真實isFinite的。
如果你嘗試:
isFinite(!undefined); // true
因爲不確定是楠上否定它,它轉換爲1,這是有限的。
你先生很快。非常感謝你滿足我的好奇心! –