js中如何判断arr是Array类型

今天笔试题碰到一个问题是js中判断是Array类型

Array属于引用类型,是不能够用typeof来判断的,用来判断的方法如下

1.用instanceof来判断

var arr=[1,2,3];
arr instanceof Array; //true

2.constructor属性

每个对象都有constructor属性可以用来判断是否是Array类型;

var arr=[1,2,3];
arr.constructor===Array;//true

以上两种判断方法都非常的方便,但是如果是在多个frame中的话是无法判断成功的,因为每个iframe都有自己的执行环境,不共享原型链,因此在为大家推荐两种方法

1.Object.prototype.toString

var arr=[1,2];
Object.prototype.toString.call(arr)==='[object Array]';//true

为了方便使用也可以封装为一个函数使用

function isArray(arr){
 return Object.prototype.toString.call(arr)=='[object Array]';
}

2.Array.isArray();

Es5将其加入到js中来判断是都为一个数组

如有不对欢迎指正,一起成长一起学习

猜你喜欢

转载自blog.csdn.net/wuguidian1114/article/details/88097628