缺少基于非数字(NaN)的概念

时间:2013-12-05 07:26:50

标签: javascript

这是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)

2 个答案:

答案 0 :(得分:2)

  

等式运算符(==和===)不能用于测试值   NaN的。使用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

答案 1 :(得分:1)

请参阅以下网址以修复您的问题....

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