为什么parseInt(key)=== NaN总是计算为false

时间:2016-09-01 11:23:48

标签: javascript jquery

我正在根据字典键做决定,我只有两种类型的键,数字和alpha,

var _dict = { 'a':'one', 'b':'two', '1':'three' };

$.each( _dict, function( key, value ){

  if( parseInt( key ) === NaN ) {

     // this statement always evalute to false

    } else {

    }

});

如果我打印console.log(parseInt('a')),它也会返回NaN

我找到了这个问题的解决方案javascript parseInt return NaN for empty string

但我想知道为什么它总是评估为假。

1 个答案:

答案 0 :(得分:3)

那是因为NaN被定义为不等于任何东西(包括它自己)。检查一下:

>> NaN === NaN
False

您应该使用isNaN()函数:

>> isNaN(NaN)
true
>> isNaN(0/0)
true
>> isNaN(parseInt('a'))
true