判断一个对象是不是数组的三种方法
1、使用instanceof操作符
2、Array.isArray() (ES5新增的方法)
3、使用Object.prototype上的原生toString()方法判断。
使用方法:
Object.prototype.toString.call(value)
var a={}; var b=[]; var frame=document.createElement("iframe");//创建一个框架 document.body.appendChild(frame); var c=window.frames[0].Array;//取得框架全局执行环境中的Array构造函数 var d=new c();//在框架全局执行环境中创建一个数组d console.log(Object.prototype.toString.call(a));//[object Object] console.log(Object.prototype.toString.call(b));//[object Array] console.log(Object.prototype.toString.call(d));//[object Array] function Person() { this.name=name; } var n=new Person(); console.log(Object.prototype.toString.call(n));//[object Object]
该方法不能检测非原生构造函数的函数名,因此定义的任何构造函数都将返回[object Object]。