js中判断参数或对象是否为数组的常用的三种方法
1、【第一种方法】使用Instanceof检测对象类型是否为数组代码:function isArray(arr){ if(arr){ return arr instanceof Array; } return false;}谷歌浏览器调试工具运行测试:

2、【第二种方法】使用对象原型中的constructor构造器属性检测是否为数组代码:function isArray(arr){ return typeof arr == 'object' && arr.constructor == Array;}运行效果

3、【第三种方法】使用最新的Array对象的isArray()方法判断,但是存在兼容性问题,IE9或以上版本。代码:Array.isArray([2,3]);测试程序:


4、【第四种方法】最完美的方法使用原型对象的toString()方法实现,该方法可获取对象的隐藏属性class名字,代码:function isArra烤恤鹇灭y(arr){ return Object.prototype.toString.call(arr) == '[object Array]';}运行测试

5、【总结】第一种和第二种方法在某些情苄念上妒况下还是出现问题的,在框架iframe会失败,因为jframe框架中的数据不是共享的,第三种在低版本IE中不支持,所以最完美的方式是第三和溟猫钽吟第四结合使用代码:function isArray(arr){ if( Array.isArray){ return Array.isArray(arr); }else{ return Object.prototype.toString.call(arr) == '[object Array]'; } }
