Number.isNaN 和isNaN有何区别?

需要强调NaN是一个Number类型的值(value)。表示这是一个特殊的数值。
当一个值被强行转成Number类型的值时,转换失败该值变成NaN

+'1'  //1   字符串'1' 可被转换成number类型的 1
+'a'  //NaN 字符串'a'转成number类型会变成NaN
+null  //0    null 可被转换成number类型的 0
+undefined  //NaN undefined转成number类型的值变成NaN

isNaN与Number.isNaN最大的区别在于isNaN函数会尝试把值转成number类型,Number.isNaN类型则不会进行类型转换,也就是Number.isNaN仅仅判断一个值是否为NaN。
使用isNaN判断一个值是否为NaN

+'a'  //NaN 字符串'a'转成number类型会变成NaN
isNaN('a')   //true  由于'a'转成number会变成NaN,故返回true
+null  //0    null 可被转换成number 0
isNaN(null)   //false  由于null可被转成0,所以null不是一个NaN,故返回false
+undefined  //NaN undefined转成number类型的值变成NaN
isNaN(undefined) //true undefined 转成number 变成NaN,所以返回true
isNaN(NaN)  //true 

使用Number.isNaN判断一个值是否为NaN

+'a'  //NaN 字符串'a'转成number类型会变成NaN
Number.isNaN('a')   //false  'a'不是NaN ,故返回false
+null  //0    null 可被转换成number 0
Number.isNaN(null)   //false null 不是NaN 故返回false
+undefined  //NaN undefined转成number类型的值变成NaN
Number.isNaN(undefined) //false undefined 不是NaN 故返回false
Number.isNaN(NaN)  //true 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值