📌  相关文章
📜  在 JavaScript 中检查一个值是否是一个数字 (1)

📅  最后修改于: 2023-12-03 15:07:40.932000             🧑  作者: Mango

在 JavaScript 中检查一个值是否是一个数字

在 JavaScript 中,有多种方法可以检查一个值是否是一个数字。以下是其中的几种方法:

使用 typeof 操作符

可以使用 typeof 操作符来检查一个值是否是一个数字。typeof 返回一个表示值类型的字符串。

typeof 42 // "number"
typeof "42" // "string"

所以,如果值的类型是 "number",则该值是数字。

function isNumber(n) {
  return typeof n === "number";
}

isNumber(42) // true
isNumber("42") // false
使用 isNaN 函数

isNaN 函数用于检查一个值是否是 NaN("Not a Number")。如果值无法表示为数字,则该函数返回 true。

isNaN(NaN) // true
isNaN("Hello") // true
isNaN("42") // false

可以使用 Number 函数将字符串转换为数字。

isNaN(Number("42")) // false

注意,isNaN 不是一个很好的检查数字的方法,因为它还会将 undefined、空字符串和 true 等值视为非数字。

使用 Number.isNaN 函数

可以使用 Number.isNaN 函数来检查一个值是否是 NaN。与 isNaN 函数不同,Number.isNaN 只返回 true,如果该值是 NaN。

Number.isNaN(NaN) // true
Number.isNaN("Hello") // false
Number.isNaN("42") // false
Number.isNaN(Number("42")) // false
使用 isFinite 函数

可以使用 isFinite 函数来检查一个值是否为有限数字。如果值是有限数字,则该函数返回 true。

isFinite(42) // true
isFinite(Infinity) // false
isFinite(-Infinity) // false
isFinite(NaN) // false
使用正则表达式

可以使用正则表达式来检查一个值是否是数字。

function isNumber(n) {
  return /^-?[\d.]+(?:e-?\d+)?$/.test(n);
}

isNumber(42) // true
isNumber(3.14) // true
isNumber(-Infinity) // true
isNumber("Hello") // false
isNumber("42") // true

以上是 JavaScript 中检查一个值是否是一个数字的几种方法。选择合适的方法取决于你的需求。