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

front end technologyjavascriptweb development

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

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

var a = "Hello";
let result = a == NaN; // 它总是返回 false。

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

使用 isNaN() 方法

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

用户可以按照以下语法使用 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 ); // 对所有非数字值返回 false

示例

在下面的例子中,我们使用 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() 方法,因为它适用于所有类型的变量。


相关文章