判斷數據類型的方法有很多,ypeof,instanceof 等。今天我們主要將Object.prototype.toString.call()進行數據類型的判斷。該方法可以說是最準確最全面的判斷數據類型的方法。(當然他也還是有不能判斷自定義對象的問題存在的)
//使用柯里化函數的方法
function isType(type) {
return function(val) {
console.log(Object.prototype.toString.call(val))
return `[object ${type}]` === Object.prototype.toString.call(val)
}
}
//創建一個判斷輸入類型的方法
//(注意傳入 type 參數時首字母大寫)
let isArr = isType('Null')
//使用方法
console.log(isArr(null))
// true
console.log(isArr([]))
// false
也可以將上面的函數扁平化處理
function isType(type, val) {
return `[object ${type}]` === Object.prototype.toString.call(val)
}
console.log(isType('Null', null)) //true
console.log(isType('Array', [])) //true
甚至于可以簡寫為一行代碼
const isType = (type, val) => `[object ${type}]` === Object.prototype.toString.call(val)