5.35 isNaN
5.35.1 语法 _.isNaN(object)
5.35.2 说明
如果object是 NaN,返回true
5.35.3 代码示例
_.isNaN(NaN); //=> true
_.isNaN(1); //=> false
_.isNaN(undefined); //=> false
_.isNaN(false); //=> false
_.isNaN(0); //=> false
5.35.3 和原生的isNaN的区别
如果变量是undefined,原生的isNaN 函数也会返回 true
_.isNaN(undefined); //=> false
isNaN(undefined); //=> true
5.35.3 源码解读
//如果是数字,并且自身前面带+号不等于自身的,就是NaN
_.isNaN = function(obj) {
return _.isNumber(obj) && obj !== +obj;
};
5.35.3 数字前面带加号
console.log(NaN === +NaN); //false
console.log(1 === +1); //true
console.log(0 === +0); //true
console.log(Infinity === +Infinity); //true
5.35.4 其他的写法
function _isNaN(obj) {
return isNaN(obj) && typeof obj === 'number';
}
console.log(_isNaN(NaN)); //=> true
console.log(_isNaN(Infinity)); //=> false
console.log(_isNaN(1)); //=> false
console.log(_isNaN(null)); //=> false
console.log(_isNaN(false)); //=> false
console.log(_isNaN(undefined)); //=> false
console.log(_isNaN()); //=> false