.看到这个题目,你是否想到了js中 typeof 用来判断类型,如果是,那么你就被pass。
一.为什么不能用typeof来判断呢?
首先你要知道typeof虽然能用来判断数据类型,但是它只能用来判断基本数据类型(number,string,underfind,boolean),对于数组和对象会统一返回 Object
var a=[]
var c=33
var b={
}
console.log(typeof b)
console.log(typeof a)
二.正确判断数组还是对象的几种方法
1.用 instanceof 判断
var a=[]
var b={}
console.log( a instanceof Array)
console.log( b instanceof Object)
2.用constructor 判断
var a=[]
var b={}
console.log( a.constructor===Array)
console.log( b.constructor===Object)
结果也是 true
3.使用Object原型对象上的tostring()方法 重点
var a=[]
var b={}
console.log(Object.prototype.toString.call(a))
console.log( Object.prototype.toString.call(b))