📅  最后修改于: 2023-12-03 15:07:40.932000             🧑  作者: Mango
在 JavaScript 中,有多种方法可以检查一个值是否是一个数字。以下是其中的几种方法:
可以使用 typeof 操作符来检查一个值是否是一个数字。typeof 返回一个表示值类型的字符串。
typeof 42 // "number"
typeof "42" // "string"
所以,如果值的类型是 "number",则该值是数字。
function isNumber(n) {
return typeof n === "number";
}
isNumber(42) // true
isNumber("42") // false
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 函数来检查一个值是否是 NaN。与 isNaN 函数不同,Number.isNaN 只返回 true,如果该值是 NaN。
Number.isNaN(NaN) // true
Number.isNaN("Hello") // false
Number.isNaN("42") // false
Number.isNaN(Number("42")) // false
可以使用 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 中检查一个值是否是一个数字的几种方法。选择合适的方法取决于你的需求。