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中来判断是都为一个数组

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值