JavaScript中NAN详解

【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

 

 

 

 

 

 

 

 

 

 

.

猜你喜欢

转载自570109268.iteye.com/blog/2411450