NaN 是什么?它的类型是什么?如何可靠地测试一个值是否等于 NaN ?
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 ?相关推荐
- 经典面试题(6):NaN 是什么?如何测试一个值是否等于 NaN ?
NaN 属性代表一个"不是数字"的值.这个特殊的值是因为运算不能执行而导致的,不能执行的原因要么是因为其中的运算对象之一非数字.例如: "abc" / 4,要么 ...
- python判断一个值是否为Nan,NULL
python判断一个值是否为Nan,NULL 在实际的实验中,我们经常会遇到输出为Nan或者NULL的情况,那么我们该如何去判断它,然后用if语句将其规避勒 方案一如下: import numpy a ...
- js中判断一个变量是否为NaN
定义 NaN(不是一个数字,但数据类型为number)是执行数学运算没有成功,返回失败的结果. 另外,NaN 不等于 NaN . 判断方法 利用 NaN 是唯一一个不等于自身的特点 function ...
- java 判断 nan_关于java:如何测试double是否等于NaN?
我在Java中有一个double,我想检查它是否为NaN. 做这个的最好方式是什么? 使用静态Double.isNaN(double)方法,或Double的.isNaN()方法. // 1. stat ...
- R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现
R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现 目录
- python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行。
python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行. import pandas as pd import numpy as np df1 = pd.Data ...
- Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值
Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值 又是转换Mybatis-Plus的一天,又遇到了之前熟悉的问题:Long类型传到前端失去精度.可 ...
- pandas将所0值修改为NaN
代码: dataframe.replace(0,np.nan) 同理,想修改任何值为另一个值都可以使用:dataframe.replace(原始值,修改后的值)
- 滤了asa,cer,cdx,php,aspx等脚本类型的上传情况下添加一个ashx的上传类型
今天日一站 发现后台可以设置上传类型,但是asp,asa,cer等等都不行,上传之后就提示下载 尝试着关闭了下了,还是不行,后来找到了一位前辈写的文章 过滤了asa,cer,cdx,php,aspx等 ...
最新文章
- VS2012/13本地发布网站详细步骤(可带数据库)
- Win8兼容ARM十大意义:打破垄断拉低价格
- BCH期货合约将在美国挂牌交易所上线
- Andriod: 在xml布局中使用自定义属性
- 7个顶级资源网站,不知道就很可惜
- mysql 取第一条_MySQL索引底层(一)索引底层原理
- Vue.js 组件编码规范
- 3 款实用的在线JS代码工具推荐
- 夺命雷公狗---无限级分类NO2
- Fultter 实战No toolchains found in the NDK toolchains folder for ABI arm-linux-androideabi
- 中国石油大学《安全管理学》第二阶段在线作业
- 830计算机软件综合大纲,2019年中国地质大学830计算机软件综合考试大纲.pdf
- 8位处理器、16位处理器、32位处理器和64位处理器
- redis主从,哨兵模式配置
- Android实现VR图片、视频小程序
- python绘制直线的垂线_p countour中的Python垂直线
- [转]和《红楼梦》咏菊花诗十二首
- Django框架之视图函数views
- 2012年10月【美国】自驾游
- 全球海温数据NOAA Extended Reconstructed Sea Surface Temperature (SST) V5的时间解释
热门文章
- i3 10105f怎么样 i310105f相当于i5什么档次 i310105f属于什么档次
- 支付宝截图反馈功能实现
- 《王者荣耀》S17赛季返场皮肤:小厨娘稳了,武陵仙君紧随其后
- Excel函数一些使用方法分享
- simatic net opc scout OPC.SimaticNet下没有DP服务
- 麒麟980鸿蒙,鸿蒙第三期公测手机预测:麒麟980/820机型,包括P30和Mate20系列
- java对时间的换算
- linux下微信不能同步,Linux下微信安装
- 阿里巴巴看好区块链未来发展趋势 龙纪链开启区块链游戏新纪元
- 计科练习12题解(并查集,最小生成树)