2013-10-08 34 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,这是有限的。

相关问题