非常精确,对于null,function,undefined判断十分准确
function getType(obj){
if(typeof obj !== 'object'){//若是基础数据类型
return typeof obj
}
return Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/,'$1')
}
console.log(getType([1,2,3]));//Array
console.log(getType(null));//Null
console.dir(getType(function(){}));//function
console.log(getType(undefined));//undefined
console.log(getType());//undefined
console.log(getType(window));//Window
console.log(getType(/123/));//RegExp