Number.isNaN 与 isNaN 的区别
JavaScript 中,value一共有七种type
null,undefined,boolean,number,string,object,symbol(ES6新增),以下为isNaN与Number.isNaN的输出结果:
//isNaN
console.log(isNaN(null)); //false
console.log(isNaN(true)); //false
console.log(isNaN(false)); //false
console.log(isNaN(0)); //false
console.log(isNaN(undefined)); //true
console.log(isNaN("AB")); //true
console.log(isNaN({a: 1})); //true
console.log(isNaN(NaN)); //true//Number.isNaN
console.log(Number.isNaN(null)); //false
console.log(Number.isNaN(true)); //false
console.log(Number.isNaN(false)); //false
console.log(Number.isNaN(0)); //false
console.log(Number.isNaN(undefined)); //false
console.log(Number.isNaN("AB")); //false
console.log(Number.isNaN({a: 1})); //false
console.log(Number.isNaN(NaN)); //true
console.log(typeof NaN); //number
console.log(NaN == NaN); //false 为什么?
NaN MDN: The global NaN property is a value representing Not-A-Number.
意思是是说:NaN是一个放在 global(浏览器里是window)对象里的一个value,是一个代表Not-A-Number的value.
所以NaN是一个 value, 这个 value 的 type 是 number。
解释来自JavaScript权威指:value, type, variable
值value:就是计算机运行时操作的一些数据对象
数据类型type:就是计算机表示并能操作的值的类型
变量variable:一个值的符号名称,当程序需要将值保存起来备用时,就将值赋给一个变量即:
variable是存放value的容器,而value是有type概念的,容器variable是没有type的概念的。
example:var ynqc = 'Ella'; 容器 variable ynqc 装着 value 'Ella', value 'Ella' 的type是string
所以,我们用isNaN()来判断一个value是不是NaN了。但是:
isNaN("AB"); // true
isNaN(undefined); // true
isNaN({}); // true
很明显不是 NaN 的 value 也被误判成 NaN 了。
于是 ES6 为了弥补这一BUG引入了 Number.isNaN().
Number.isNaN(NaN); // true
Number.isNaN("AB"); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN() 的 polyfill
if (!Number.isNaN) {Number.isNaN = function(n) {return typeof n === "number" && window.isNaN( n );};
}
简单的实现,利用只有 NaN 不跟自己相等的特性
if (!Number.isNaN) {Number.isNaN = function(n) {return return value !== value;};
}
Number.isNaN 与 isNaN 的区别相关推荐
- isnan java_从 Number.isNaN 与 isNaN 的区别说起 例子
例子 大家先看一看下面这个例子, isNaN(NaN); isNaN('A String'); isNaN(undefined); isNaN({}); Number.isNaN(NaN); Numb ...
- isNaN()与Number.isNaN()的区别
1.isNaN() isNaN函数是用来确定一个值是否是NaN,可以在全局使用,返回值是一个布尔值true或false: //基础用法 isNaN(1) //false isNaN(NaN) //tr ...
- 小程序中输入框input的type属性 text、number、idcard、digit 区别
微信小程序的 input 有个属性叫 type,这个 type 有几个可选值: text:不必解释 number:数字键盘(无小数点) idcard:数字键盘(无小数点.有个 X 键) digit:数 ...
- 微信小程序 input 的 type属性 text、number、idcard、digit 区别
微信小程序的 input 有个属性叫 type,这个 type 有几个可选值: text:不必解释 number:数字键盘(无小数点) idcard:数字键盘(无小数点.有个 X 键) digit:数 ...
- type=number和type=tel的区别
众所周知,HTML5加入了新的input类型 number,这是方便数量输入的.如果是在移动端中,属性type="number"和type="tel"会唤起系统 ...
- 检测数据类型、小数点后保留后N位方法、数据类型转换、window对象的方法 、分支结构 (if单分支、if-else 双分支、多重if结构)isNaN() 与 Number.isN的区别
目录 1.检测数据类型(typeof) 2.数据类型转换 转换为字符串类型 换为数字类型 其他类型转换为布尔值 小数点后保留后N位方法 3.window对象的方法 (window.可省略) 4.顺序流 ...
- js中isNaN和Number.isNaN的区别
背景 与 JavaScript 中其他的值不同,NaN不能通过相等操作符(== 和 ===)来判断 ,因为 NaN == NaN 和 NaN === NaN 都会返回 false. 因此,isNaN ...
- JS中的NaN和isNaN,简直是双重人格?
number数字类型 包括数字和NaN,NaN:not a number 但是它是数字类型的 isNaN的用法:检测当前值是否不是有效数字,返回true代表不是有效数字,返回false是有效数字 / ...
- isNaN与parseInt/parseFloat
isNaN 返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字). NaN 即 Not a Number isNaN(numValue) 必选项 numvalue 参数为要检查 ...
最新文章
- 独家|OpenCV1.9 如何利用OpenCV的parallel_for_并行化代码(附代码)
- WF4.0进行单元测试
- python发送文件到邮箱_python发送文件夹内容到邮箱
- 开发日记-20190914 关键词 汇编语言王爽版 第五章
- 创建两个相同名称的文件夹
- sql中的case when
- MSDN i TELL YOU 又更新了,win10 1809版本的 3月29日的
- pycharm创建django项目界面解释
- NetBeans Weeldy News 刊号 # 53 - Apr 23, 2009
- initramfs 根文件系统
- 找不到服务器的打印机,在服务器上找不到打印机无法连接怎么解决
- 苹果文件管理器服务器,8最佳免费iPhone文件管理器,用于管理iOS设备上的文件...
- 网络数据传输的节点大全
- PowerDesigner 15破解版下载
- 儿童护眼灯有必要买吗?推荐教育部入围护眼照明品牌
- 微信小程序提交审核时提示:“ 小程序页面内容涉及账户充值服务,需补充商家自营-预付卡销售-发行方类目。请在基础信息处申请该类目”的解决方法
- ES6 数组转为对象 ,以及 find 在数组里面找到对应一条数据
- java 设计模式之解释器模式(十九)
- 区块链福利(注册即可)
- kubernetes认证-CKA、CKS考试
热门文章
- 2021年PMP考试时间安排
- SAP 通过SPRO激活扩展BC集失败
- window7 thinkpad E430C怎么关闭FN的快捷键 thinkpad系列win7通用
- HMS Core助力宝宝巴士为全球开发者展现高品质儿童数字内容
- 计算机上绘图教程,word绘图教程:绘图工具中的“线条”工具使用-word技巧-电脑技巧收藏家...
- HBase MOB简介以及使用
- 将图片进行黑白灰处理
- kubernetes CSI(上)
- 编写 Java 程序用于显示人的姓名和年龄。
- Mobileye专利 US9665100 - Sparse map for autonomous vehicle navigation 吐血整理