你如何检查一个数字在JavaScript中是NaN?
2022-08-29 23:06:08
我只是在Firefox的JavaScript控制台中尝试过,但以下两个语句都不返回true:
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
我只是在Firefox的JavaScript控制台中尝试过,但以下两个语句都不返回true:
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
我刚刚在《Effective JavaScript》一书中遇到了这种技术,它非常简单:
由于 NaN 是唯一被视为与自身不相等的 JavaScript 值,因此您始终可以通过检查某个值是否与自身相等来测试该值是否为 NaN:
var a = NaN;
a !== a; // true
var b = "foo";
b !== b; // false
var c = undefined;
c !== c; // false
var d = {};
d !== d; // false
var e = { valueOf: "foo" };
e !== e; // false
直到@allsyed评论时才意识到这一点,但这在ECMA规范中:https://tc39.github.io/ecma262/#sec-isnan-number