概述
NAN
● 0/0 Javascript会返回“NAN”,程序可正常执行,其他语言,程序会抛出异常
● NAN与任何值都不相等 NAN==NAN //false
● ES5提供了isNAN函数。ES6增加了Number.isNAN()
isNAN()
NAN产生的条件
● 运算返回一个无法表示的数值,0/0 => NAN n/0 => Infinity
● 需要做强制类型转换时,某些数据不能直接转换为数值类型,则会返回NAN 1-“a”=NAN,"a"无法参与数值运算
● isNAN()会进行数据的类型转换
○ isNaN(NaN); // true
○ isNaN(undefined); // true
○ isNaN({}); // true
○ isNaN(true); // false,Number(true)会转换成数字1
○ isNaN(null); // false,Number(null)会转换成数字0
○ isNaN(1); // false
○ isNaN(‘’); // false,Number(‘’)会转换为成数字0
○ isNaN(“1”); // false,字符串"1"可以转换成数字1
○ isNaN(“JavaScript”); // true,字符串"JavaScript"无法转换成数字
// Date类型
○ isNaN(new Date()); // false
○ isNaN(new Date().toString()); // true Fri Mar 12 14:05:48 CST 2010
Number.isNAN()
● 不会做数据类型转换,只有传入NAN,才返回true,其他类型的值都会返回 false
总结:
● isNAN 先进行数据转换,无法转换为数字则返回true
● Number.isNAN(),不进行数据转换,只判断值是否为NAN
// 兼容性处理
if(!Number.isNaN) {
Number.isNaN = function (n) {
return n !== n;
}
}
最后
以上就是高贵鸵鸟为你收集整理的Javascript|数据类型|isNAN()与Number.isNAN()差别的全部内容,希望文章能够帮你解决Javascript|数据类型|isNAN()与Number.isNAN()差别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复