深入理解NaN
来源:互联网 发布:澳门网络博客有限公司 编辑:程序博客网 时间:2024/06/05 20:18
NaN ,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以 0 都会导致错误,从而停止代码执行。但在 ECMAScript 中,任何数值除以 0会返回 NaN ,因此不会影响其他代码的执行。
NaN 本身有两个非同寻常的特点。首先,任何涉及 NaN 的操作(例如 NaN /10)都会返回 NaN ,这个特点在多步计算中有可能导致问题。其次, NaN 与任何值都不相等,包括 NaN 本身。例如,下面的代码会返回 false :
alert(NaN == NaN); //false
lert(isNaN(NaN)); //truealert(isNaN(10)); //false(10是一个数值)alert(isNaN(“10”)); //false(可以被转换成数值10)alert(isNaN(“blue”)); //true(不能转换成数值)alert(isNaN(true)); //false(可以被转换成数值1)
尽管有点儿不可思议,但 isNaN() 确实也适用于对象。在基于对象调用 isNaN() 函数时,会首先调用对象的 valueOf() 方法,然后确定该方法返回的值是否可以转换为数值。如果不能,则基于这个返回值再调用 toString() 方法,再测试返回值。而这个过程也是ECMAScript中内置函数和操作符的一般执行流程。
阅读原文
阅读全文
0 0
- 深入理解NaN
- NaN怎么理解
- 好好理解Javascript的NaN!
- nan
- NaN
- NaN
- NaN
- NaN
- javascript NaN和isNaN的理解
- python None 与 Nan的理解
- 深入了解JavaScript之判断NaN,null,undefined
- 深入理解
- jqGrid 时间显示成NaN-NaN-NaN NaN:NaN:NaN
- python的nan,NaN,NAN
- MapReduce理解-深入理解MapReduce
- 深入理解动态库
- 深入理解sizeof
- 深入理解MIDlet类
- 文件操作之fprintf函数的使用
- ios 绘制三角形
- webservice知识一、SOAP风格的webservice——通过JDK的API发布一个webservice服务和创建一个webservice客户端用于访问该服务
- 练习记录
- Android通知SD卡(内置/外置)扫描新数据
- 深入理解NaN
- [JZOJ5187]【NOIP2017提高组模拟6.30】tty's maze
- 如何在Ubuntu上安装最新版本的Node.js
- 解决了java+matlab混编+web(jsp)调用Matlab,网页中显示Figure,详细实例
- 获取当前句柄的4种方法
- java 线程间的状态转换
- Python格式化输出
- [python]俄罗斯方块(二)
- OpenVPN成功连接了但不能访问任何网站