判断类型的时候,常常会需要用到typeof,但是遇到Null、Array、Date等,返回的都是object,有时候会达不到要求
利用【 Object.prototype.toString.call(value) 】可以发现,能拿到该值的具体类型
利用这一点,就可以做一下转化了:
function check_type(value) {
// 切割一下,转化为小写
let type = Object.prototype.toString.call(value).slice(8, -1).toLowerCase()
return type
}
check_type(1) // "number"
check_type('xxx') // "string"
check_type(null) // "null"
check_type(undefined) // "undefined"
check_type(true) // "boolean"
check_type([]) // "array"
check_type(new Date()) // "date"
check_type(function(){}) // "function"