如何在 JavaScript 中检查某个值是否为数字?
在本教程中,我们将学习如何在 JavaScript 中检查某个值是否为数字。在 JavaScript 中,执行某些操作时需要检查变量的数据类型。否则,可能会在您的应用程序中产生一些未知的错误。
例如,当用户将加法运算符与字符串一起使用时,它会将两个字符串连接起来,同样,如果用户将加法运算符与数字一起使用,它会将两个数字相加。现在,假设用户想要添加两个数字,但要连接两个字符串。
这里,我们有三种不同的方法来检查变量是否为数字类型。
使用 typeof 运算符
使用 isNaN() 方法
使用 Number.isFinite() 方法
使用 typeof 运算符
在这种方法中,我们将使用 typeof 运算符检查变量类型。它返回变量的类型。如果返回值为"number",则变量为数字类型。
语法
用户可以使用以下语法,使用 typeof 运算符检查变量是否为数字。
let number = 20; if ( typeof number == 'number' ) { // 对数字执行某些操作。 }
示例
在下面的示例中,我们使用 typeof 运算符检查了不同变量的类型。它根据变量是否为数字在屏幕上打印消息。
<html> <head> </head> <body> <h2>Check whether a value is number or not in JavaScript.</h2> <h4>Using the <i>typeof</i> operator to check value is number or not.</h4> <div id = "number1"></div> </body> <script> var number1 = document.getElementById("number1"); function checkNumber(number) { return typeof number == "number" ? "is number" : " is not a number"; } number1.innerHTML = "123 " + checkNumber(123) + " <br/> "; number1.innerHTML += "true " + checkNumber(true) + " <br/> "; number1.innerHTML += "'Hello' " + checkNumber("Hello") + " <br/> "; </script> </html>
使用 isNaN() 方法
在第二种检查变量是否为数字的方法中,我们将使用 isNaN() 方法。NaN 的含义不是数字。如果传递的参数值不是数字,isNaN() 方法将返回 true;否则,它将返回 false。
为了实现我们的目标,我们将对返回值取反。因此,当变量为数字类型时,它将返回 true,而 false 变量为另一种数据类型。
语法
let number = 20; let result = !isNaN(number);
参数
number − 它是任意数据类型的变量,我们想检查它是否为数字。
示例
在下面的示例中,我们使用了 isNaN() 方法来检查不同的变量是否为数字。我们还检查了布尔值。
<html> <head> </head> <body> <h2>Check whether a value is number or not in JavaScript.</h2> <h4>Using the <i> isNaN() </i> method for different values.</h4> <div id = "number1"></div> </body> <script> var number1 = document.getElementById("number1"); number1.innerHTML = "-32.34 is number : " + !isNaN(-32.34) + " <br/>"; number1.innerHTML += "false is number : " + !isNaN(false) + " <br/>"; number1.innerHTML += "TutorialsPoint is number : " + !isNaN("TutorialsPoint") + " <br/> "; </script> </html>
上述方法对布尔值返回 true,因为布尔值以 0 和 1 的形式表示。因此,这是 isNaN() 方法的局限性。它将对布尔值返回准确的结果。
使用 Number.isFinite() 方法
Number.isFinite() 方法是内置的 JavaScript 数字库方法。它以变量为参数,并对除无穷大值之外的所有数值返回 true。
语法
let variable = 20; let result = Number.isFinite( variable );
参数
变量 − 它是任意数据类型的值,用户想要检查其值是否为数字。
示例
以下示例演示了 Number.isFinite() 方法的使用。我们正在测试不同的变量和值,以确定该变量是否为数字类型。
<html> <head> </head> <body> <h2>Check whether a value is number or not in JavaScript.</h2> <h4>Using the <i> Number.isFinite() </i> method for different values.</h4> <div id = "number1"></div> </body> <script> var number1 = document.getElementById("number1"); number1.innerHTML = "232.14 is number : " + Number.isFinite(232.14) + " <br/> "; number1.innerHTML += "Infinity is number : " + Number.isFinite(Infinity) + " <br/> "; number1.innerHTML += "Yes is number : " + Number.isFinite("yes") + " <br/> "; </script> </html>
我们已经学习了三种不同的方法来检查值是否为数字。第一种方法是最流行和最简单的方法。第二种方法对布尔值有一些限制,因此不推荐使用。第三种方法也很有用,因为它适用于所有变量。