一、判斷數字類型
function isNumber(obj) {
return typeof obj === 'number' && isFinite(obj);
}
在JavaScript中,可以通過typeof運算符返回的結果來判斷數據類型,但是並不能準確地識別出全部類型。對於數字類型,除了使用typeof運算符之外,還需要使用isFinite函數來排除非數字情況。
此外,對於整數類型,可以通過取模運算符進行判斷:
function isInt(num) {
return typeof num === 'number' && num % 1 === 0;
}
上述代碼中,如果num除以1的餘數等於0,則它就是一個整數。
二、判斷字符串類型
function isString(obj) {
return typeof obj === 'string';
}
字符串類型是非常常見的一種數據類型。在JavaScript中,可以通過typeof運算符判斷一個變量是否為字符串類型。
另外,有時候還需要判斷一個字符串是否為空字符串,可以使用如下代碼:
function isEmptyString(str) {
return typeof str === 'string' && str.trim() === '';
}
上述代碼中,使用了trim方法將字符串兩側的空格去掉,然後再判斷是否為空字符串。
三、判斷布爾類型
function isBoolean(obj) {
return typeof obj === 'boolean';
}
布爾類型只有兩個值:true和false。在JavaScript中,可以用typeof運算符判斷一個變量是否為布爾類型。
四、判斷數組類型
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
因為JavaScript中的數組是一種特殊的對象類型,所以無法使用typeof運算符判斷是否為數組。通常可以使用Object.prototype.toString.call方法來實現:
上述代碼中,使用了call方法可以改變this指向,把this指向obj,然後調用toString方法獲取其類型信息。
五、判斷對象類型
function isObject(obj) {
return typeof obj === 'object' && obj !== null && !isArray(obj);
}
對於複雜的數據類型,可以使用typeof運算符判斷是否為對象類型。但是需要注意排除null和數組類型,因為null的類型也是object。
總結
JavaScript中的數據類型非常豐富,對於不同的數據類型需要使用不同的方法進行判斷。在進行類型判斷的時候,應該多加註意,尤其是一些特殊情況的處理。
原創文章,作者:KFJUS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/334678.html
微信掃一掃
支付寶掃一掃