为什么要在isFinite()之后检查!isNaN()?
|
我在Google Closure库中遇到了“ 0”功能。它的作用是检查给定数是否既是有限的又不是
NaN
。
底层代码是:
goog.math.isFiniteNumber = function(num) {
return isFinite(num) && !isNaN(num);
};
因此,首先使用本机的isFinite
函数检查数字是否为有限,然后再使用ѭ5does进行附加检查以确保数字不是NaN
。
但是,如果参数为NaN
,则isFinite
已经返回false。那么,“ 5”支票有什么优势?
没有找到相关结果
已邀请:
5 个回复
磐去裸猜饲
氏脑
isNaN检查参数是否为数字。 Infinities(+/-)也是数字,因此它们通过了isNaN检查,但没有通过isFinite检查。 **请注意,任何可以解析为数字的字符串(\“ 2 \”,\“ 3.14 \”)都将导致isNaN返回false。 希望这可以帮助。 PS:user1170379给出的答案非常接近完美。
冕偷淮款
蹦吃舷弦
的原因-我从mysql收到错误消息,抱怨我将complain-nan放入数据库中,尽管我已经检查了
... 关于此主题的有用文章是http://jacksondunstan.com/articles/983,它提供了优化optimization14
蹄寄噬非芹
如果参数不是NaN,Infinity或-Infinity以外的数字,则isFinite()返回true;否则,返回false。 例如:
isFinite(200/2)=> true;`