if(x<Infinity)是检查x是否不是NaN并且可以强制为数字的最佳方法

Is if(x < Infinity) the best way to check if x is not NaN and can be coerced to a Number?

本文关键字:方法 最佳 数字 lt Infinity if 是否 检查 NaN      更新时间:2023-09-26

我知道NaN不小于无穷大。我测试了很多字符串,似乎可以强制为Number类型的字符串小于无穷大,而不能强制为Number的字符串则不是。这是一个检查变量"can"是否为数字类型的可靠方法吗?

否,因为

''<Infinity

给出true

如果既不想要NaN也不想要Infinity,请尝试isFinite:

$ node
> isFinite(Infinity)
false  
> isFinite(NaN)
false
> isFinite(3E100)
true

但请记住,在JavaScript中,几乎任何东西都可以被强制为数字。

false => 0
true => 1
null => 0
"3" => 3

使用正确方法的对象(我让您查找)也可以被强制。

我从未尝试过使用Infinity。但我认为isNaN()正是你想要的!