为什么在isFinite()之后要检查!isNaN()?
- 论坛
- 为什么在isFinite()之后要检查!isNaN()?
8 浏览
为什么在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
的检查有什么优势呢?