1.1 typeof()
缺点:不能判别出object,array,null
console.log(typeof({})) //object
console.log(typeof([])) //object
console.log(typeof(null)) //object
1.2 instanceof
利用原型prototype
console.log([] instanceof Array) //true
console.log({} instanceof Object) //true
1.3 constructor
利用构造函数,
缺点:不能判断null和undefined,并且一旦重写prototype 会导致指向错误
let str='123'
let num=1
let obj={}
let arr=[]
let isNull=null
let isUndefined=undefined
console.log(str.constructor) //[Function: String]
console.log(num.constructor) //[Function: Number]
console.log(obj.constructor) //[Function: Object]
console.log(arr.constructor) //[Function: Array]
console.log(isNull.constructor) //error
console.log(isUndefined.constructor) //error
1.4 toString()
利用Object的原型方法 Object.prototype.toString()
let str='123'
let num=1
let obj={}
let arr=[]
let flag=true
let isNull=null
let isUndefined=undefined
console.log(Object.prototype.toString.call(str)) //[object String]
console.log(Object.prototype.toString.call(num)) //[object Number]
console.log(Object.prototype.toString.call(obj)) //[object Object]
console.log(Object.prototype.toString.call(arr)) //[object Array]
console.log(Object.prototype.toString.call(flag)) //[object Boolean]
console.log(Object.prototype.toString.call(isNull)) //[object Null]
console.log(Object.prototype.toString.call(isUndefined)) //[object Undefined]
如果觉得有帮助欢迎点赞、评论。 上述内容仅仅代表个人观点,如有错误,请指正。如果你也对前端感兴趣,欢迎访问我的个人博客sundestiny.github.io/myblog/