我是靠谱客的博主 高贵鸵鸟,最近开发中收集的这篇文章主要介绍Javascript|数据类型|isNAN()与Number.isNAN()差别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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()差别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部