为什么在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,这是有限的。
你先生很快。非常感谢你满足我的好奇心! –