版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/bianliuzhu/article/details/82586867

NaN 属性代表一个“不是数字”的值。这个特殊的值是因为运算不能执行而导致的,不能执行的原因要么是因为其中的运算对象之一非数字(例如, "abc" / 4),要么是因为运算的结果非数字(例如,除数为零)。

虽然这看上去很简单,但 NaN 有一些令人惊讶的特点,如果你不知道它们的话,可能会导致令人头痛的bug。

首先,虽然 NaN 意味着“不是数字”,但是它的类型,不管你信不信,是 Number

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

此外, NaN 和任何东西比较——甚至是它自己本身!——结果是false:

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

一种半可靠的方法来测试一个数字是否等于 NaN,是使用内置函数 isNaN(),但即使使用 isNaN() 依然并非是一个完美的解决方案。

一个更好的解决办法是使用 value !== value,如果值等于NaN,只会产生true。另外,ES6提供了一个新的 Number.isNaN() 函数,这是一个不同的函数,并且比老的全局 isNaN() 函数更可靠。

NaN 是什么?它的类型是什么?如何可靠地测试一个值是否等于 NaN ?相关推荐

  1. 经典面试题(6):NaN 是什么?如何测试一个值是否等于 NaN ?

    NaN 属性代表一个"不是数字"的值.这个特殊的值是因为运算不能执行而导致的,不能执行的原因要么是因为其中的运算对象之一非数字.例如: "abc" / 4,要么 ...

  2. python判断一个值是否为Nan,NULL

    python判断一个值是否为Nan,NULL 在实际的实验中,我们经常会遇到输出为Nan或者NULL的情况,那么我们该如何去判断它,然后用if语句将其规避勒 方案一如下: import numpy a ...

  3. js中判断一个变量是否为NaN

    定义 NaN(不是一个数字,但数据类型为number)是执行数学运算没有成功,返回失败的结果. 另外,NaN 不等于 NaN . 判断方法 利用 NaN 是唯一一个不等于自身的特点 function ...

  4. java 判断 nan_关于java:如何测试double是否等于NaN?

    我在Java中有一个double,我想检查它是否为NaN. 做这个的最好方式是什么? 使用静态Double.isNaN(double)方法,或Double的.isNaN()方法. // 1. stat ...

  5. R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现

    R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现 目录

  6. python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行。

    python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行. import pandas as pd import numpy as np df1 = pd.Data ...

  7. Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值

    Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值 又是转换Mybatis-Plus的一天,又遇到了之前熟悉的问题:Long类型传到前端失去精度.可 ...

  8. pandas将所0值修改为NaN

    代码: dataframe.replace(0,np.nan) 同理,想修改任何值为另一个值都可以使用:dataframe.replace(原始值,修改后的值)

  9. 滤了asa,cer,cdx,php,aspx等脚本类型的上传情况下添加一个ashx的上传类型

    今天日一站 发现后台可以设置上传类型,但是asp,asa,cer等等都不行,上传之后就提示下载 尝试着关闭了下了,还是不行,后来找到了一位前辈写的文章 过滤了asa,cer,cdx,php,aspx等 ...

最新文章

  1. js中的if与Java中的if_JavaScript if...else 语句
  2. “面试不败计划”:集合总结
  3. 【阿西莫夫】最后的问题
  4. 程序员是青春饭吗 - CSDN分享会笔记
  5. csrf-token
  6. jQuery编写插件
  7. MySQL 深潜 - 一文详解 MySQL Data Dictionary
  8. pytorch得到中间层输出
  9. dbutils mysql_使用DBUtils控制mysql事务
  10. 从有理数到实数(序)
  11. 技术支持和研发哪个好_考拉海购技术支持的前世今生,聊聊家常“黑历史”
  12. 编译并运行Java文件
  13. php自定义生成用户收据,Shopify POS收据自定义操作步骤
  14. 持续分化的 NFT 市场:新的金字塔正在形成
  15. 幼儿园故事导入语案例_幼儿园老师上课常用导入语 课前活跃气氛用这11种方法就对了...
  16. 【小学】综合素质脑图笔记
  17. 《认知设计》-提升学习体验的艺术
  18. python做一个登录注册界面_python做一个登录注册界面的方法
  19. sybase常见语句
  20. 来~打包实现小程序动态分享图一条龙服务( ¨̮ )

热门文章

  1. 四柱农历php,免费四柱八字排盘详解 免费算农历一生命运
  2. QT 驱动大恒水星相机
  3. 麒麟985对比麒麟980哪个好有什么区别 麒麟985对比麒麟980参数对比
  4. java闪烁_java双缓冲解决屏幕闪烁
  5. 09年美国最热门的100个B2C网站,他们是怎么成功的?
  6. IP地址分类和特殊IP地址
  7. [Leetcode] 304. Range Sum Query 2D - Immutable 解题报告
  8. 三星电子平泽工厂第二生产线开始量产
  9. 一行代码实现全站pjax无刷新加载
  10. OPPO与低配高价诀别,推出高性价比手机K1