如何在 JavaScript 中测试一个值是否等于 NaN?


本文讨论了如何在 JavaScript 中测试一个值是否等于 NaN。在 JavaScript 中,NaN 是 Number 类的一个方法。NaN 代表 **非数字**。它是布尔类型。当值为“非数字”时,它返回 true。

NaN 方法用于某些情况下。例如,当函数尝试解析数字但失败时,或者当数学函数失败时,就会使用 NaN 方法。**isNaN()** 方法的语法如下所示。

isNaN(); or Number.isNaN();

**isNaN()** 和 **Number.isNaN()** 之间存在差异。如果值当前为 NaN 或在转换为数字后将为 NaN,则 **isNaN()** 将返回 true。换句话说,如果 **isNaN()** 收到一个可以转换为数字的值,它将返回 false。但函数 **Number.isNaN()** 仅当值当前为 NaN 时才返回 true。

让我们看几个例子:

示例 1

以下示例将使用 **isNaN()** 方法检查一个值是否等于 NaN。

Open Compiler
<html> <body> <p id="height"></p> <script> document.write(isNaN('hello world') + "<br>"); document.write(Number.isNaN('hello world')); </script> </body> </html>

执行上述代码后,将生成以下输出。

示例 2

以下是一个示例程序,使用 **isNaN()** 方法检查一个值是否等于 NaN。

Open Compiler
<!DOCTYPE HTML> <html> <head> <title>To check whether a number is NAN or not</title> </head> <body style = "text-align:center;"> <h3>A simple program to check whether a number is NAN or not.</h3> <p id="text1"></p> <script type="text/javascript"> function check(value){ if(isNaN(value)){ return 'is NaN'; }else{ return 'is not a NaN'; } } var a = check('100'); var b = check('Tutorials Point'); var c = check('100.234'); var d = check('2/3'); var e = check('15/04/2022'); document.getElementById("text1").innerHTML = "100 "+a+'<br />'+"TutorialsPoint "+b+'<br />'+"100.234 "+c+'<br />'+"2/3 "+d+'<br />'+"15/04/2022 "+e+'<br />'; </script> </body> </html>

执行上述代码后,将生成以下输出。

示例 3

下面的示例使用 **Number.isNaN()** 方法。**Number.isNaN()** 如果给定值为 NaN 且其类型为 Number,则返回 true;否则返回 false。**isNaN()** 方法在测试之前会将值转换为数字。在 **Number.isNaN()** 方法中,这是不可能的。

Open Compiler
<!DOCTYPE HTML> <html> <head> <title>To check whether a number is NAN or not</title> </head> <body style = "text-align:center;"> <h3>A simple program to check whether a number is NAN or not by using Number.isNaN method.</h3> <p id="text1"></p> <script type="text/javascript"> function check(value){ if(Number.isNaN(value)){ return 'is NaN'; }else{ return 'is not a NaN'; } } var a = check(100); var b = check('Tutorials Point'); var c = check(0/0); var d = check(Math.sqrt(-100)); var e = check('15/04/2022'); document.getElementById("text1").innerHTML = "100 "+a+'<br />'+"TutorialsPoint "+b+'<br />'+"0/0 "+c+'<br />'+"Square root √-100 "+d+'<br />'+"15/04/2022 "+e+'<br />'; </script> </body> </html>

执行上述代码后,将生成以下输出。

更新于: 2022-12-08

262 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告