为什么在isFinite()之后要检查!isNaN()?

8 浏览
0 Comments

为什么在isFinite()之后要检查!isNaN()?

我在Google Closure Library中发现了goog.math.isFiniteNumber函数。它的作用是检查给定的数字是否既是有限的又不是NaN

底层代码如下:

goog.math.isFiniteNumber = function(num) {
  return isFinite(num) && !isNaN(num);
};

所以,首先它使用本地的isFinite函数检查数字是否有限,然后使用isNaN进行额外的检查,以确保数字不是NaN

然而,isFinite在参数为NaN的情况下已经返回false。那么,isNaN的检查有什么优势呢?

0