JS判断对象是否为Array

1.typeof操作符

对Function,String,Number,Undefined等几种类型的对象可用,但判断一个Array时,typeof得到object

2.instanceof操作符

返回Boolean值

​var arr=[1,2];
arr instanceof Array; //true

在多个frame中穿梭会有问题

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray("1","2","3");//IE不支持,FF下支持
alert(arr instanceof Array); // false
alert(arr.constructor === Array); //false

3.ES3:Object.prototype.toString.call(obj) === '[Object Array]'

function isArray(obj){
    return Object.prototype.toString.call(obj) === '[Object Array]';
}

可借鉴跨frame对象构建的问题,且各浏览器兼容性较好

4.ES5/Es6:Array.isArray(obj) === true

你可能感兴趣的:(前端,前端)