如何在 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。

<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。

<!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()** 方法中,这是不可能的。

<!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 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.