如何在 JavaScript 中检查变量是否为 NaN?


在本教程中,我们将学习如何检查 JavaScript 中的变量是否为 NaN。NaN 的完整形式是“非数字”NaN 是 JavaScript 中的保留关键字,我们可以将其分配给变量。

如果用户使用以下方法来检查变量是否为数字,则该方法将不起作用。

var a = "Hello";
let result = a == NaN; // it always returns false.

正如我们所说,上述方法无法用于检查数字,因为 NaN 是保留关键字。因此,它不能等于任何变量的值。即使 NaN 在将其值分配给变量后使用时也不等于自身。

使用 isNaN() 方法

在 JavaScript 中,isNaN() 方法用于检查变量是否为除数字数据类型以外的任何其他类型。它以变量作为参数,如果变量是数字则返回 false。否则,它返回 true 布尔值。

用户可以按照以下语法使用 isNaN() 方法检查变量是否为NaN

语法

let number = 10;
let result = isNaN(number);

参数

  • number - 它以任何变量作为参数,并根据变量是否为NaN 返回布尔值。

示例

在下面的示例中,我们使用了 isNaN 方法来检查 NaN。我们采用了不同的值来观察 isNaN() 方法的输出。

<html> <head> </head> <body> <h2>Check if a variable is NaN in JavaScript.</h2> <h4>output of <i> isNaN() </i> method for different values.</h4> <div id = "output1"></div> <script> let output1 = document.getElementById("output1"); let output = ""; output = output + isNaN(1000) + " : 1000 <br> "; output = output + isNaN("tutorialsPoint") + " : TutorialsPoint <br> "; output = output + isNaN(NaN) + " : NaN<br> "; output = output + isNaN(-21.2) + " : -21.2 <br> "; output = output + isNaN('') + " : '' <br> "; output = output + isNaN(0) + " : 0 <br> "; output = output + isNaN(true) + " : true <br> "; output1.innerHTML = output; </script> </body> </html>

在上面的输出中,用户可以看到 isNaN() 方法对于数字值返回 false,对于非数字值返回 true。“true”布尔值也为 1,所以它是一个数字。此外,“”的值为 0,所以 isNaN() 方法对此返回 false。

使用 Number.isNaN() 方法

Number.isNaN() 与 JavaScript 中的 isNaN() 方法非常相似,但两者之间存在细微差别。isNaN() 方法检查所有类型的变量是否为 NaN。Number.isNaN() 方法仅检查变量的数字类型。这意味着如果我们传递除数字以外的任何其他数据类型的变量,它始终返回 false 值。

按照以下语法使用 Number.isNaN() 检查 NaN。

语法

let number = 10;
let result = Number.isNaN( number ); // returns false for all non-numeric values

示例

在下面的示例中,我们使用了 Number.isNaN() 方法来检查变量是否为 NaN。我们使用了与上面示例中相同的数值。我们将观察 isNaN()Number.isNaN() 方法输出之间的差异。

<html> <head> </head> <body> <h2>Check if a variable is NaN in JavaScript.</h2> <h4> output of <i> Number.isNaN() </i> method for different values.</h4> <div id = "output1"></div> <script> let output1 = document.getElementById("output1"); let output = ""; output = output + Number.isNaN(1000) + " : 1000 <br> "; output = output + Number.isNaN("tutorialsPoint") + " : TutorialsPoint <br> "; output = output + Number.isNaN(NaN) + " : NaN <br> "; output = output + Number.isNaN(-21.2) + ": -21.2 <br>"; output = output + Number.isNaN('') + " : '' <br> "; output = output + Number.isNaN(0) + " : 0 <br> "; output = output + Number.isNaN(true) + " : true <br> "; output1.innerHTML = output; </script> </body> </html>

在上面的输出中,用户可以看到对于字符串值“TutorialsPoint”,它已更改为 false。由于我们传递了非数字值作为 Number.isNaN() 方法的参数,因此返回 false。

我们已经学习了如何检查变量是否为 NaN。第一种方法是检查 NaN 的标准方法。第二种方法在某些浏览器中已弃用。建议使用 isNaN() 方法,因为它适用于所有类型的变量。

更新于: 2022 年 8 月 8 日

9K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告