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

JavaScript: How to circumvent the typeof NaN issue?

本文关键字:问题 类型 NaN 何规避 JavaScript      更新时间:2024-03-15
console.log(typeof NaN)

上面返回"数字"。

问题 1.我该如何找到解决此问题的方法?

问题 2.查找变量类型的更好方法是什么?(而不是typeof(

谢谢!

更新:感谢您的所有评论。但是第一个回答者理解了我的问题。我担心评估"NaN"的返回声明的类型,使其不显示为"数字"。

我在 if 语句中使用 typeof(( 来在 if(typeof(x( == "number"( { 执行此操作时采取行动.. }

但即使 x 是 NaN,条件也通过了。我想解决这个问题。

我不知道"NaN"是"数字

"类型,因为NaN的意思是"不是数字"。这导致了混乱。

我很抱歉不清楚我想问什么。但是我的问题解决了。

谢谢大家!

如果要检查一个数字是否不是 NaN,您可能需要使用isNaN函数:

var val = 4
console.log(isNaN(val)) // false
var val2 = NaN
console.log(isNaN(val2)) // true

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

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

不要使用 typeof,除非需要速度,否则数组和 null 都失败。 然而,根据规范,NaN 实际上是数字类型。

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