我只在 Firefox 的 JavaScript 控制台中尝试过,但以下语句均未返回 true:
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
原文由 Paul D. Waite 发布,翻译遵循 CC BY-SA 4.0 许可协议
我只在 Firefox 的 JavaScript 控制台中尝试过,但以下语句均未返回 true:
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
原文由 Paul D. Waite 发布,翻译遵循 CC BY-SA 4.0 许可协议
我刚刚在 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
原文由 Jazzy 发布,翻译遵循 CC BY-SA 3.0 许可协议
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
试试这个代码:
要检查 任何 值是否为 NaN,而不仅仅是数字,请参见此处: 如何在 Javascript 中测试 NaN?