Javascript 为什么isFinite(未定义)!=isFinite(空)?

Javascript 为什么isFinite(未定义)!=isFinite(空)?,javascript,null,undefined,Javascript,Null,Undefined,为什么在javascript中,undefined的值被认为是有限的,而null不是有限的 这是一个非常基本的问题,它阻碍了我的谷歌搜索(太多噪音) 我不理解,因为我希望以相同的方式处理null和undefined。这是因为Number(null)==0 这是因为数字(null)==0 isFinite(数字) 如果参数强制为NaN,则返回false+∞, 或−∞, 否则返回true isFinite使用Number() Number(undefined); //== NaN Number(n

为什么在javascript中,undefined的值被认为是有限的,而null不是有限的

这是一个非常基本的问题,它阻碍了我的谷歌搜索(太多噪音)


我不理解,因为我希望以相同的方式处理null和undefined。

这是因为
Number(null)==0


这是因为
数字(null)==0

isFinite(数字)

如果参数强制为NaN,则返回false+∞, 或−∞, 否则返回true

isFinite
使用
Number()

Number(undefined); //== NaN
Number(null); //== 0
这就是为什么undefined为false,而对于isFinite,null为true的原因

如果您尝试:

isFinite(!undefined); // true
因为undefined是NaN,在对它求反时,它转换为1,它是有限的

isFinite(数字)

如果参数强制为NaN,则返回false+∞, 或−∞, 否则返回true

isFinite
使用
Number()

Number(undefined); //== NaN
Number(null); //== 0
这就是为什么undefined为false,而对于isFinite,null为true的原因

如果您尝试:

isFinite(!undefined); // true

因为undefined是NaN,在否定它时,它转换为1,这是有限的。

先生,您很快。非常感谢你满足了我的好奇心!先生,你很快。非常感谢你满足了我的好奇心!