NaN深入研究
NaN定义
即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。
NaN 有两个特点
一,任何涉及到NaN的操作(NaN/10)都会返回NaN
二,NaN和任何数值都不相等。
NaN出现的情况
1.数值转换,Number()函数的转换规则(1)如果的undefined,返回NaN;(2)如果是对象,则调用对象的ValueOf方法,如果结果是NaN,则调用对象的toString()方法。
var num1 = Number("Hello word!");//NaN
2.parseInt()转换空字符会返回NaN(Number()对空字符返回0)。
var num = parseInt(“”);//NaN
3.如果一个操作数是NaN,怎结果是NaN
4.如果是Infinity被Infinity除,则结果是NaN;如果是Infinity与0相乘,则结果是NaN;如果Infinity加-Infinity,则结果是NaN;如果Infinity减Infinity,则结果是NaN;如果-Infinity减-Infinity,则结果是NaN
5.如果0除以0,结果是NaN
6.如果被除数是无限大值而除数是有限的数值,则结果是NaN;如果被除数是有限大的数值而除数是0,则结果是NaN
PS:我看高级程序以为NaN是个无用的东西,结果师父突然问我,我蒙圈了;而且还是师父工作中真实出现过的bug;好吧虽然没有帮师父解决问题,可是却让我深入的了解了一个这个NaN。
帮助别人的同时自己也会提高,这是双赢;不要放弃任何一个小知识,不知道哪一天你就会用到。