缺少基于非数字(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 == NaNNaN === 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)的概念[重复]的主要内容,如果未能解决你的问题,请参考以下文章

(数字(值)!== NaN)始终为真[重复]

0-9在一个数据帧的索引的最左边数字重复多久?

在javascript中获取NaN而不是数字[重复]

IF 语句中的 Javascript“NaN”[重复]

parseInt() 检查 NaN 工作不正常 [重复]

检查NaN数[重复]