【发布时间】:2013-02-17 00:53:15
【问题描述】:
取自 underscore.js 源代码:
_.isNaN = function(obj) {
return _.isNumber(obj) && obj != +obj;
};
他们为什么这样做?上述实现是否等同于:
_.isNaN = function(obj) {
return obj !== obj;
};
如果是,为什么是“更复杂”的版本?如果不是,行为差异是什么?
【问题讨论】:
-
或者更简单,原生的
isNaN函数... -
@Kolink 取自 Underscore 文档:“注意:这与原生 isNaN 函数不同,如果变量未定义,它也会返回 true”
-
@Kolink
isNaN(undefined)是真的。 -
就像
isNaN("NaN")... -
“不是数字”函数的目的是不是要找出变量是否不是数字?
标签: javascript numbers underscore.js nan