一个很简单的问题:
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