JavaScript:如何规避NaN问题的类型?

时间:2016-04-08 22:38:06

标签: javascript typeof

console.log(typeof NaN)

以上返回'数字'。

Q1。我如何找到解决方法?

Q2。找到变量类型的更好方法是什么? (而不是typeof

谢谢!

更新 感谢您的所有意见。但第一个回答者理解我的问题。我担心评估'NaN'的退货声明的类型不会显示为'数字'。

我在if语句中使用typeof()来执行if(typeof(x)==“number”){do this ..}

但即使x是NaN,情况也会过去。我想解决这个问题。

我不知道'NaN'的类型为'Number',因为NaN的意思是'非数字'。这导致了混乱。

我为不清楚我想问什么而道歉。但我的问题已经解决了。

谢谢大家!

2 个答案:

答案 0 :(得分:0)

如果您想检查某个号码是否不是NaN,您可能需要使用isNaN功能:

var val = 4

console.log(isNaN(val)) // false

var val2 = NaN

console.log(isNaN(val2)) // true

检查变量是否包含数字且不是NaN您可以使用以下内容:

typeof val === 'number' && !isNAN(val)

答案 1 :(得分:-2)

不要使用typeof,除非速度是两个数组和null都需要的。但是根据规范,NaN实际上是数字类型。

使用

var getType = function (obj) {
    return Object.prototype.toString.call(obj).slice(8, -1);
};