使用 Number.isFinite() 对比无穷大对比 Number.POSITIVE_INFINITY 检查数字是否有限

Using Number.isFinite() vs comparing to Infinity vs comparing to Number.POSITIVE_INFINITY to check if a number is finite

有多种方法可以检查数字是否有限。

  1. 使用Number.isFinite()函数:

    Number.isFinite(number)
    
  2. Infinity相比:

    Math.abs(number) !== Infinity
    

    我在这里使用 Math.abs() 以防数字是 -Infinity

  3. Number.POSITIVE_INFINITY相比:

    Math.abs(number) !== Number.POSITIVE_INFINITY
    

使用这三种方法有什么区别吗?我假设 Infinity 是只读的,如 ECMAScript 5 规范所述。

2 和 3 相同,因为 Number.POSITIVE_INFINITY === Infinity。 1 和 2 将以不同方式处理 NaN,请参阅 http://www.ecma-international.org/ecma-262/6.0/#sec-number.isfinite