js中的Number.isNaN和isNaN

js中的NAN,你一定会想到它的缩写not a number。

那NAN是不是    就是  ‘’不是一个数字’‘呢,nonono!!(带着这个想法看,会完全扭曲js中的NAN的含义)

NAN在js 中的意思实际上是坏数字、非法数字的意思,代表着不合规的数字运算的结果。所以typeof(NAN)仍旧是number, NAN属于数字,但是‘坏’数字。

例如2/“sss” = NAN,除法是数学运算,在这里2/“sss"明显是不合法的数学运算操作,字符不可能做为除数存在,那么js此时不会报错,但是会返回一个NAN。

isNAN(s)

isNAN(s),这个函数的意思是 判断  参数s是否   不能转换为数字,这个函数因为根本和判断js内的NAN完全没关系,被视为js一个长期的Bug存在。

可能没听懂,再解释一下,isNAN会首先将s尝试转换为数字,如果不能转换,则彻底不是数字,返回true;如果能转换为数字,返回false。所以它判断的是 能不能转换为数字  这个语义。

isNaN("s") //true 不能转换为数字,判断成功,返回真
isNaN("2") //false 能转换为数字,判断NAN错误,返回假
isNaN(2/"s") //true NaN不能转换为数字

Number.isNAN(s)

Number.isNAN能够修复这个bug,它只服务于 判断 是否 是js意思里的NAN.NaN是js内置的一个值

Number.isNaN("sss") // false "sss"首先判断不是数字类型,NaN是数字类型
Number.isNaN(NaN) // true NaN是js的一个字面量
Number.isNaN(2/"s") // true 坏数字,判断成功
Number.isNaN(2) // false 虽然是数字类型,但是是 ‘健康’ 数字

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹邹邹邹!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值