pim*_*vdb 25 javascript nan google-closure-library
我goog.math.isFiniteNumber在Google Closure Library中看到了这个功能.它做的是检查给定数字是否有限而不是NaN.
底层代码是:
goog.math.isFiniteNumber = function(num) {
return isFinite(num) && !isNaN(num);
};
Run Code Online (Sandbox Code Playgroud)
因此,首先它使用本机isFinite函数检查数字是否有限,然后进行额外检查以确保数字未NaN使用isNaN.
但是,isFinite如果参数是,则返回false NaN.那么,检查isNaN提供了哪些优势?
kum*_*rsh 16
唯一的区别是:
!isNan(1/0) // --> true
isFinite(1/0) // --> false
Run Code Online (Sandbox Code Playgroud)
isNaN检查参数是否为数字.无穷大(+/-)也是数字,因此它们通过isNaN检查,但不通过isFinite检查.
**请注意,任何可以解析为数字("2","3.14")的字符串都会导致isNaN返回false.
希望这可以帮助.
PS:user1170379给出的答案非常接近完美.
Zac*_*ner -5
如果isFinite按照这种方式工作isFiniteNumber,那么就没有理由编写 isFiniteNumber。可能有一些浏览器将 NaN 视为有限值。