取自 underscore.js 来源:
_.isNaN = function(obj) {
return _.isNumber(obj) && obj != +obj;
};
他们为什么要这样做?上面的实现是否等同于:
_.isNaN = function(obj) {
return obj !== obj;
};
如果是,为什么是“更复杂”的版本?如果不是,行为差异是什么?
最佳答案
_.isNaN(new Number(NaN))
返回 true。
那是 by design .
var n = new Number(NaN);
console.log(_.isNaN(n), n!==n); // logs true, false
关于javascript - 理解下划线对 isNaN 的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15176076/