在JavaScript中如何检查一个数字是否为NaN?

544

我只在Firefox的JavaScript控制台中尝试过,但以下语句都没有返回true:

parseFloat('geoff') == NaN;

parseFloat('geoff') == Number.NaN;

6
如果您的实际目标是检查数字, 这篇文章值得一读:https://dev59.com/3nVD5IYBdhLWcg3wU56H - Paul
3
http://designpepper.com/blog/drips/the-problem-with-testing-for-nan-in-javascript.html - Foreever
1
@Gothdo:好的,但是我确实问过如何检查一个数字是否为NaN,而不是任何值。 - Paul D. Waite
3
@PaulD.Waite 是的,但很多人在谷歌搜索"如何在JavaScript中检查变量是否为NaN"时会来到这里。 - Michał Perłakowski
在ES6(又名ECMAScript 2015)中,使用Number.isNaN,查看此答案MDN - undefined
显示剩余4条评论
33个回答

-1

(NaN >= 0) 是什么?...... "我不知道"。

function IsNotNumber( i ){
    if( i >= 0 ){ return false; }
    if( i <= 0 ){ return false; }
    return true;
}

只有在TRUE的情况下才会执行条件。

不适用于FALSE

不适用于"我不知道"。


如果你明确地寻找NaN值而不是寻找相反的值,那么这并不是很有用。 - liviu blidar

-1

只需将结果转换为字符串并与“NaN”进行比较即可。

var val = Number("test");
if(String(val) === 'NaN') {
   console.log("true");
}

-2

我看到了几个关于这个问题的回答,

但我只是使用:

function isNaN(x){
     return x == x && typeof x == 'number';
}

5
应该是 return x !== x && typeof x === 'number' 吗? - RaymondM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接