一、判斷數字類型
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