为什么 undefined 的值在 javascript 中被认为是有限的,而 null 不是?
这是一个非常基本的问题,它阻碍了我的 googlefoo(噪音太大)。
isFinite(undefined); // false
isFinite(null); // true
我不明白,因为我希望 null 和 undefined 以相同的方式处理。
为什么 undefined 的值在 javascript 中被认为是有限的,而 null 不是?
这是一个非常基本的问题,它阻碍了我的 googlefoo(噪音太大)。
isFinite(undefined); // false
isFinite(null); // true
我不明白,因为我希望 null 和 undefined 以相同的方式处理。
这是因为Number(null) === 0
.
是有限的(数字)
如果参数强制为 NaN、+∞ 或 -∞,则返回 false,否则返回 true。
isFinite
使用和转换输入Number()
:
Number(undefined); //== NaN
Number(null); //== 0
这就是 undefined 为 false 且 isFinite 为 null 的原因。
如果你试试:
isFinite(!undefined); // true
因为 undefined 是 NaN 并且在否定它时它转换为 1 这是有限的。