如何判断是否是数组

如何判断是否是数组

typeof() 只能返回object
eg: a = [1,2,3]
Js提供的方法:
A:Array.isArray(a)
从构造函数入手
B:a instanceof Array
从原型入手:
C:Array.prototype.isPrototypeOf(a)
根据对象的class 属性(类属性),跨原型链调用toString()方法:
在js中一个对象一旦被创建,在内部会携带创建对象的类型名,一旦创建就不能被修改了
调用对象原型中的toString方法, Object.prototype.toString.call(obj);因为很多对象继承的toString()方法被重写了,为了能够调用正确的toString()版本,也就是最原始的版本。可以使用Function.call()的方法,其中call可以这么理解,相当于obj去借用这个 Object.prototype.toString();
D:function isArrayResult (o) {
return Object.prototype.toString.call(o) === ‘[object Array]’;
}
isArrayResult([1,2,3]);

你可能感兴趣的:(数组)