一、typeof運算符
typeof 42; // "number"
typeof "42"; // "string"
typeof true; // "boolean"
使用typeof運算符,可以判斷一個值是否為JavaScript數字。如果返回結果是”number”,則表示該值是數字類型;如果返回結果是”string”或”boolean”,則表示該值不是數字類型。
然而,typeof運算符的結果並不總是準確的。比如:
typeof NaN; // "number"
typeof Infinity; // "number"
NaN和Infinity都屬於數字類型,但是typeof運算符將它們判斷成了”number”類型,這可能會給程序帶來一些困惑。
二、isNaN函數
isNaN(42); // false
isNaN("42"); // false
isNaN(NaN); // true
isNaN(Infinity); // false
使用isNaN函數,可以判斷一個值是否為數字類型。如果返回結果是true,表示該值不是JavaScript數字。如果返回結果是false,表示該值是數字。
需要注意的是,isNaN函數對於一些特殊值的判斷可能並不準確。比如:
isNaN(undefined); // true
isNaN(null); // false
因此,在實際開發中,需要注意判斷的精度。
三、正則表達式
function isNumeric(value) {
return /^-?\d+$/.test(value);
}
isNumeric("42"); // true
isNumeric("-42"); // true
isNumeric("42.1"); // false
使用正則表達式,可以判斷一個字符串是否為JavaScript數字。該方法通過檢查字符串是否符合數字的格式來判斷是否為數字類型。
需要注意的是,該方法無法判斷Infinity、NaN等特殊值是否為數字類型。
四、自定義函數
function isNumber(value) {
return typeof value === "number" && isFinite(value);
}
isNumber(42); // true
isNumber("42"); // false
isNumber(NaN); // false
isNumber(Infinity); // false
通過自定義函數,我們可以更精確地判斷一個值是否為JavaScript數字。該方法結合了typeof運算符和isFinite函數,可以避免特殊值的干擾。
需要注意的是,該方法無法判斷字符串類型是否為數字類型。
原創文章,作者:SBFCJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/330844.html