js中判断数组的方法

来源:互联网 发布:环境破坏的事例和数据 编辑:程序博客网 时间:2024/06/17 06:45

首先声明一个数组 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属性,它引用了初始化该对象的构造函数,常用于判断未知对象的类型。

2 0