1.typeof操作符
利用typeof除了array和null判断为object外,其他的都可以正常判断
2.instanceof操作符
这个操作符是检测对象的原型链是否指向构造函数的prototype对象的。
var arr = [1,2,3] console.log(arr.instanceof Array) // true
3.对象的constructor属性
除了instanceof,每个对象还有constructor的属性,利用它似乎也能进行Array的判断。
var arr = [1,2,3] console.log(arr.constructor === Array) // true
4.Object.prototype.toString
function isArrayFn (o) { return Object.prototype.toString.call(o) === '[object Array]'; } var arr = [1,2,3,1]; alert(isArrayFn(arr));// true
5.Array.isArray
ECMAScript5将Array.isArray()正式引入JavaScript,目的就是准确地检测一个值是否为数组。IE9+、 Firefox 4+、Safari 5+、Opera 10.5+和Chrome都实现了这个方法。但是在IE8之前的版本是不支持的。
来自原文:https://blog.csdn.net/fanshuhai/article/details/80024761