4种验证数组的方法


使用操作符 instanceof
在这里插入图片描述
检测的是对象的原型上是否是数组类型,存在问题比如我们将构造函数的原型定位为数组的原型 instanceof是检测不出来的

function Test(){}
Test.prototype = Array.prototype
let a = new Test()
console.log(a instanceof Array)

在这里插入图片描述
在这里插入图片描述

验证对象的构造函数
在这里插入图片描述
在这里插入图片描述
上面自己定义的Test方法的实例调用constructor也会返回true这也是个不足
在这里插入图片描述

而且上面两种检测方法会因为页面中存在多个iframe或多个全局环境而出现问题,下面的方法则没有这个问题


使用es5的方法isArray 较为精准
在这里插入图片描述
用上面我们自己指定数组原型的实例检测也是成功检测为false的
在这里插入图片描述

检测对象的原型
在这里插入图片描述
当检测其他数据类型
在这里插入图片描述
检测自己指定数组原型对象的函数实例也能检测出来
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值