JS判断数据类型

131 阅读1分钟

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

因为undefinednull这两种类型都只有唯一值

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'