-
在es5中,可以使用
Array.isArray()
函数来判断。
Array.isArray([]); //true
Array.isArray({}); //false
-
在es3中,通过检查对象的类属性来判断。
对象的类属性(class attribute)是一个字符串,用以表示对象的类型信息。es3和es5中都未提供设置这个属性的方法,并且只有一种间接的方法可以查询它。默认的
toString()
方法(继承自Object.prototype
)返回如[object class]
这种格式的字符串。因此,想要获得对象的类,可以调用对象的toString()
方法。
var isArray = function(o) {
return typeof o === "object" && Object.prototype.toString.call(o) === "[object Array]";
};
console.log(isArray([])); //true
console.log(isArray({})); //false
参考书籍:《JavaScript高级程序设计(第3版)》,《JavaScript权威指南》。