如何判断一个对象是不是数组类型完美方案

typeof  操作符可以用来检测给定变量的数据类型,返回的值有以下几种:undefined,boolean,string,number,object,function   结果:  object null Array 都会是 object类型

该方法无法判断一个对象是不是数组类型


3.根据构造函数来判断

instanceof操作符可以来表示实例是否属于某个构造函数创建的。  

从上图来看,obj1是构造函数Array的实例没问题,obj4也是构造函数的实例类型,显然obj4应该是对象数据类型,为什么会产生这种情况,obj4.__proto__=obj1,obj4改变了它的原型指向,

因为改变了obj4的原型指向导致使用instanceof字符判断出obj4也为数组类型了,所以此方法也不可取。

该方法无法判断一个对象是不是数组类型


断一个对象是不是数组类型最可靠的方法是这两种:

Object. prototype.toString.call(obj)===[ object Array]

Array. isArray(obj)。

猜你喜欢

转载自www.cnblogs.com/ddqyc/p/13375497.html