缺少基于非数字(NaN)的概念[重复]
Posted
技术标签:
【中文标题】缺少基于非数字(NaN)的概念[重复]【英文标题】:Missing concept based on Not a Number (NaN) [duplicate] 【发布时间】:2013-12-22 00:50:20 【问题描述】:这是 javascript 代码(使用控制台),对此代码有一点疑问
var foo = 10;
var boo = undefined;
if((foo + boo)==NaN)console.log("Not a Number !!!");
//>undefined
if((foo + boo)===NaN)console.log("Not a Number !!!");
//>undefined
//>Not a Number !!! (Expected)
【问题讨论】:
使用isNan()
函数检查是否为NaN
你的问题是什么?
和(也许)Why is undefined == undefined but NaN != NaN?
我已经比较了 NaN 和 undefined。
不,你没有。 10 + undefined
导致 NaN
。您已经比较了NaN == NaN
和NaN === NaN
。
【参考方案1】:
等式运算符(== 和 ===)不能用于测试值 南。请改用 Number.isNaN() 或 isNaN()。
NaN === NaN; // false Number.NaN === NaN; // false isNaN(NaN); // true isNaN(Number.NaN); // true
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN
【讨论】:
【参考方案2】:请参阅下面的 URL 以解决您的问题....
JavaScript isNaN() Function
检查一个号码是否为非法号码:
var a = isNaN(123) + "<br>";
var b = isNaN(-1.23) + "<br>";
var c = isNaN(5-2) + "<br>";
var d = isNaN(0) + "<br>";
var e = isNaN("Hello") + "<br>";
var f = isNaN("2005/12/12") + "<br>";
res 的结果是:
false
false
false
false
true
true
【讨论】:
这不是答案。这只是一个链接,如果链接失效,这篇文章就没用了。答案应该是自包含的。请在您的帖子中包含实际信息。 另外链接到外部内容非常好。除此之外,w3schools 提供的信息不正确(哦,奇怪!)或至少令人困惑:isNaN
不检查一个值是否是“非法数字”(不管是什么),它检查该值是否是NaN
,其实是一个很特殊的数值。
@FelixKling 谢谢你的建议...
您应该养成参考 MDN 文档 (developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…) 而不是 w3schools 的习惯。原因见w3fools.com。以上是关于缺少基于非数字(NaN)的概念[重复]的主要内容,如果未能解决你的问题,请参考以下文章