首先声明一个数组 var arr= [];
js中typeof只能检测简单数据类型 如果typeof arr,会返回object,显然不能判断到底是不是一个数组 那么js中用什么方法检测数组呢? 方法1: isArray()方法 Array.isArray(arr);
但是这个方法有兼容性 ie浏览器只有ie9以上才支持 方法2:instanceof 运算符 arr instanceof Array
instanceof 运算符的作用 A instanceof B 判断B的PRototype属性值是否在A的原型链上 也可以是判断A是不是B的实例 返回布尔值
方法3:方法借用 Object.prototype.toString.call(arr)===[object,Array]
如果返回true证明是数组
call方法为方法借用 A.call(B) 意思就是将A中的this指向B,B如果是数组的话,就会去自身去找toString()方法,自身找不到就去它的原型上去找,如果找到返回[object,Array]
方法4:arr.constructor
看返回的是不是名字为Array的构造函数
js中, 每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,常用于判断未知对象的类型。
新闻热点
疑难解答