javascript – 为什么检查!isNaN()之后isFinite()?

我在Google Closure Library中遇到了goog.math.isFiniteNumber函数。它的作用是检查给定的数字是否是有限的,而不是NaN。

底层代码是:

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

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

但是,如果参数是NaN,isFinite已经返回false。那么NNA提供哪些优点呢?

如果isFinite的工作方式是isFiniteNumber,那么没有理由写isFiniteNumber。在那里可能有一些浏览器将NaN视为有限的。
http://stackoverflow.com/questions/5690071/why-check-for-isnan-after-isfinite

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 为什么检查!isNaN()之后isFinite()?