JavaScript中的isFinite()产生意外结果

时间:2015-12-31 07:57:05

标签: javascript

在JavaScript最大值中,一个数字可以来自Number.MAX_VALUE属性。如果我安慰,

console.log(isFinite(Number.MAX_VALUE)); // true

预计会变为现实。但我在下面的陈述中期待错误,因为我将最大值加1。

console.log(isFinite(Number.MAX_VALUE + 1));

但它正在回归真实。是什么原因?

再添一个案例。跟随行输出false,如预期的那样。

console.log(isFinite(Number.MAX_VALUE * Number.MAX_VALUE));

stackoverflow question中提到的问题解释了最大整数值。但我需要知道超过最大浮点数的数字是如何工作的。

1 个答案:

答案 0 :(得分:0)

Number.MAX_VALUE + 1不是Infinity

您应该阅读this questionthis answer以获得更好的解释。

至于isFinite,非常简单:

  

如果参数为NaN,正无穷大或负无穷大,则此方法返回false;否则,它返回true。

来自MDN。另见:Number.isFinite