面试遇到面试官经常会问到的问题,我们如何去判断一个对象他是不是数组类型?在typeof {}和typeof []的结果都是object,对此,今天小编给大家总结了几种方法,希望能帮助到有需要的小伙伴。
方法1:从构造函数入手obj instanceof Array
方法2:从原型入手Array.prototype.isPrototypeOf(obj);
利用isPrototypeOf()方法,判定Array是不是在obj的原型链中,如果是,则返回true,否则false。
方法3:Array.isArray()方法
1
js已经提供了判断是不是数组类型的方法,如下:
2
在MDN中就比较了isArray和instanceof的区别,当Array.isArray()不可用的使用,MDN做了如下的补丁,说明还是比较推荐使用前面讲的第三种方法 Object.prototype.toString.call(obj)。
方法4:根据对象的class属性(类属性)