NaN属性表示“不是数字”的值。这个特殊值是由于一个操作数是非数字的(例如“abc”/4)或者因为操作的结果是非数字而无法执行的。

虽然看起来很简单,但是NaN有一些令人惊讶的特征,如果人们没有意识到这些特征,就会导致BUG。

一方面,虽然NaN的意思是“不是数字”,但它的的类型是,数字:

console.log(typeof NaN === "number"); //logs "true"

此外,NaN相比任何事情-甚至本身! - false:

console.log(NaN === NaN); //logs "false"

测试数字是否等于NaN的半可靠办法是使用内置函数isNaN(),但是即使使用isNaN()也不是一个好的解决方案。

一个更好的解决方案要么是使用value!=值,如果该值等于NaN,那么只会生成true。另外ES6提供了一个新的Number.isNaM()函数,它是旧的全局isNaN ()函数不同,也更加可靠。

最新文章

  1. algorithm -- 选择排序
  2. PHP-CS-Fixer:格式化你的PHP代码
  3. 让CKEditor支持FLV视频播放
  4. jquery面试题里 缓存问题如何解决?
  5. SQL--查询相同字段的数据
  6. 161018--NOIP模拟
  7. HTTP - Cookie 机制
  8. python学习笔记26(python中__name__的使用)
  9. 在终端(Terminal)里用命令行进行数学运算
  10. SpringMVC之Controller传递JSON数据到页面
  11. Python基础 - 关键字
  12. spark、storm与Hadoop
  13. Pytest高级进阶之Fixture
  14. 【HDU1000】A+B Problem
  15. [Codeforces Round #507][Codeforces 1039C/1040E. Network Safety]
  16. 添加AD RMS role时,提示密码不能被验证The password could not be validated
  17. MyEclipse2014安装插件的几种方式(适用于Eclipse或MyEclipse其他版本)
  18. select 禁止 选择
  19. C标准库string.h中几个常用函数的使用详解
  20. websevice之三要素

热门文章

  1. oracle(创建数据库对象)
  2. 最基础前端路由实现,事件popstate使用
  3. 如何使用redis作为缓存,增强用户访问数据的用户体验
  4. 为什么在集合中不能使用int关键字作为类型
  5. 今天使用Bufferedrader ,单缓冲区的数据读取时出现的中文乱码的问题
  6. shell脚本 screen管理
  7. Python绘制饼图
  8. java多线程8:阻塞队列与Fork/Join框架
  9. C++ NFS挂载
  10. Spring支持的常用数据库传播属性和事务隔离级别