需要注意的一点,对于array和null,用Object.prototype.toString单独判断。其它都很简单。
代码
function getType(obj) {
if (typeof obj === 'object') {
let temp = Object.prototype.toString.call(obj);
let len = temp.split(' ')[1].toLowerCase().length;
return temp.split(' ')[1].toLowerCase().slice(0, len - 1)
} else {
return typeof obj
}
}
测试
console.log(getType(1)) // number
console.log(getType("1")) // string
console.log(getType(null)) // null
console.log(getType(undefined)) // undefined
console.log(getType({})) // object
console.log(getType(function () { })) // function
记录记录!