【NAN简介】
NaN,是Not a Number的缩写
在计算中, NaN 代表一个非数字, 是用来呈现未定义(undefined)和不可呈现(unrepresentable)的数据类型, 尤其是在浮点计算中。既是一种计算机用语,用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。还指一个预定义的常量,表示“不明确的数值结果”
【定义】
NaN 属性用于引用特殊的非数字值
【说明】
无法使用 for/in 循环来枚举 NaN 属性,也不能用 delete 运算符来删除它
NaN 不是常量,可以把它设置为其他值
【用法】
一般用isNaN() 来判断一个值是否是数字
原因是 NaN 与所有值都不相等,包括它自己
【概论】
编码中很少直接使用到 NaN
通常都是在计算失败时,作为 Math 的某个方法的返回值出现的(例如:Math.sqrt(-1))或者尝试将一个字符串解析成数字但失败了的时候(例如:parseInt("blabla"))
【判断一个值是否是NAN】NaN
等号运算符(== 和 ===) 不能被用来判断一个值是否是 NaN。必须使用 Number.isNaN() 或 isNaN() 函数。在执行自比较之中:NaN,也只有NaN,比较之中不等于它自己
NaN === NaN; // false Number.NaN === NaN; // false isNaN(NaN); // true isNaN(Number.NaN); // true
【NAN应用】
(1)数据处理:
在实际工程中经常数据的缺失或者不完整,此时可以将那些缺失设置为nan,Matlab处理缺失的数据时就会跳过或者其它处理——这个是Matlab优越于其它语言的表现之一。另外但读取数据时,某个字符不是数据,那么Matlab自动将它认为nan处理
(2)绘图:
如果想挖掉一部分,那么nan就起作用了
【案例】
①通过 NaN 来判断一个值
<script type="text/javascript"> var test1="300" var test2="Hello World!" document.write(Number(test1)+ "<br />") document.write(Number(test2)+ "<br />") document.write(isNaN(test1)+ "<br />") document.write(isNaN(test2)) </script>
【拓展】
NaN这个特殊的Number与所有其他值都不相等,包括它自己:
NaN === NaN; // false
唯一能判断NaN的方法是通过isNaN()函数:
isNaN(NaN); // true
关于NAN还有些模糊,具体可以参考http://ourjs.com/detail/5383eb8f7610019548000012
.