如何判断变量是否不是数字(NaN)

 2024-02-18 03:03:19  阅读 0

什么

首先我们来了解一下NaN是什么?

NaN是全局对象的一个​​属性,意思是“不是数字”,即Not-A-。 初始值为NaN,与.NaN的值相同。

同时,NaN属性是不可配置()、不可写()、不可枚举()的属性。

NaN一般不会在工作中直接使用。 它更常见于 Math 的返回值或尝试将字符串解析为数字但失败时。

为什么

当我们需要判断值是否相等时,通常使用以下四种方法来判断:

if(param1 == param2) {
   // do someting
}
if(param1 != param2) {
   // do someting
}
if(param1 === param2) {
   // do someting
}
if(param1 !== param2) {
   // do someting
}

然而,这些方法都不适用于 NaN。

1 === NaN;        // false
'hello world' === NaN; // false
Number.NaN === NaN; // false
NaN === NaN;        // false

因为无论你将 NaN 与什么值进行比较,结果都将是 false,即使将 NaN 与它本身进行比较,结果也将是 false。

如何

那么如何判断一个变量是否为NaN呢?

js提供了两个函数来判断,.isNaN()和isNaN()

还有另一种方法。 由于 NaN 是目前唯一不等于自身的值,因此我们还可以通过类似于以下代码的方法来判断变量“x”是否为 NaN。

function isNaN(x) {
  return x != x;
}

必须要注意的是

isNaN()首先判断参数是否为类型。 如果不是类型,则会尝试将参数转换为Numbe类型,然后判断是否为NaN。

并且.isNaN()不会强制转换参数,只有当参数为NaN时才会返回true。

兼容性方面,.isNaN()是es6中才添加的,不支持IE及部分低版本浏览器。 isNaN 支持几乎所有浏览器。

首发于:瓜地内容创作平台

标签: 变量

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码