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);
};