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