我正在根据字典键做决定,我只有两种类型的键,数字和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
但我想知道为什么它总是评估为假。
答案 0 :(得分:3)
那是因为NaN
被定义为不等于任何东西(包括它自己)。检查一下:
>> NaN === NaN
False
您应该使用isNaN()函数:
>> isNaN(NaN)
true
>> isNaN(0/0)
true
>> isNaN(parseInt('a'))
true