用typeof判断数组会返回object,因为数组也是对象。
用instanceof Array判断数组在大部分浏览器是没问题的,但是在某些IE浏览器并不能得到正确的结果。
一般使用以下两种方法:
一是用ES5的Array.isArray()
二是如果不支持isArray(),用Object.prototype.toString().call():
综合一下:
if(typeof Array.isArray === "undefined"){
Array.isArray = function(arg){
return Object.prototype.toString.call(arg) === "[object Array]";
}
}
如果是对象的话,会返回[object Object]。