1. typeof
可以判断:undefined, 数值, 字符串, 布尔值,function
typeof function : 'function'
不能判断: null 与 object object 与 array
typeof null/object/array: 值都为 'object',所以不能判断这几种类型
2. instanceof
判断对象的具体类型
A instanceof B
判断A是不是B的实例对象,B是一个构造函数
3. ===
判断 undefined null
因为undefined和null这两种类型都只有唯一值
4、Object.prototype.toString.call()
Object.prototype.toString.call() //"[object Undefined]"
Object.prototype.toString.call({}) //"[object Object]"
Object.prototype.toString.call([]) //"[object Array]"
Object.prototype.toString.call(new Date) //"[object Date]"
Object.prototype.toString.call(new Function) //"[object Function]"
//封装方法
function typeOf(obj) {
return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase()
}
typeOf([]) // 'array'
typeOf({}) // 'object'
typeOf(new Date) // 'date'