什么是NaN?它的类型是什么?如何可靠的测试一个值是否等于NaN?
2024-09-07 10:48:48
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 ()函数不同,也更加可靠。
最新文章
- algorithm -- 选择排序
- PHP-CS-Fixer:格式化你的PHP代码
- 让CKEditor支持FLV视频播放
- jquery面试题里 缓存问题如何解决?
- SQL--查询相同字段的数据
- 161018--NOIP模拟
- HTTP - Cookie 机制
- python学习笔记26(python中__name__的使用)
- 在终端(Terminal)里用命令行进行数学运算
- SpringMVC之Controller传递JSON数据到页面
- Python基础 - 关键字
- spark、storm与Hadoop
- Pytest高级进阶之Fixture
- 【HDU1000】A+B Problem
- [Codeforces Round #507][Codeforces 1039C/1040E. Network Safety]
- 添加AD RMS role时,提示密码不能被验证The password could not be validated
- MyEclipse2014安装插件的几种方式(适用于Eclipse或MyEclipse其他版本)
- select 禁止 选择
- C标准库string.h中几个常用函数的使用详解
- websevice之三要素