isNaN的执行过程

      一个很简单的问题:

      isNaN(null),返回值是true还是false?

      我的第一反应是true,然而事实却是false。

      开始很不理解,于是去查了isNaN的原理,原来是isNaN在执行时,首先将参数执行了Number()操作,然后再去判断操作后的结果是否是NaN。当我们执行Number(null)时,返回值是0,0是数字,所以isNaN(0)返回值是false,那么isNaN(null)返回false也就不足为奇了。

      下面列举一下几个特殊值的isNaN执行结果,有没有超乎你的想象呢?

isNaN('');    //false
isNaN(undefined);    //true
isNaN([]);    //false
isNaN(' ');    //false
isNaN({});    //true
isNaN();    //true
isNaN(Infinity);    //false
isNaN(1/0);    //false
isNaN(0/0);    //true

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值