1、使用instanceof方法:用于判断一个变量是否某个对象的实例,左边操作数是一个对象,右边操作数是一个函数对象或者函数构造器
var arr = []; console.log(arr instanceof Array)
2、使用constructor方法:在W3C定义中的定义:constructor 属性返回对创建此对象的数组函数的引用,就是返回对象相对应的构造函数。从定义上来说跟instanceof不太一致,但效果都是一样的。
那么判断各种类型的方法
console.log([].constructor == Array); //true
注意:
使用instaceof和construcor,被判断的array必须是在当前页面声明的!
3、使用 Object.prototype.toString.call(arr) === '[object Array]'方法
function isArray(o) {
return Object.prototype.toString.call(o);
}
var arr=[2,5,6,8];
var obj={name:'zhangsan',age:25};
var fn = function () {}
console.log(isArray(arr)); //[object Array]
4、方法四:ES5定义了Array.isArray:
Array.isArray([]) //true