JavaScript中判断未知对象是否是一个类数组对象

    字符串和函数有 length 属性,但是它们可以用 typeof 检测将其排除。在客户端Js中,DOM文本节点也有 length 属性,需要额外判断 obj .nodeType != 3 将其排除( nodeType 属性返回以数字值返回指定节点的节点类型。如果节点是元素节点,则 nodeType 属性将返回 1。如果节点是属性节点,则 nodeType 属性将返回 2 ):

// 判定obj是否是一个类数组对象
function isArrayLike( obj ) {
    if( obj && typeof obj === "object" &&	      // obj非null、undefined等 obj是对象
        isFinite(obj.length) && 	              // obj.length是有限数值
        obj.length >= 0 &&	                      // obj.length为非负数
        obj.length === Math.floor(obj.length) &&  // obj.length是整数
        obj.length < 4294967296)	              // obj.length < 2^32
        return true;
    else
        return false;
}

 

转载于:https://my.oschina.net/javamaster/blog/1623549

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值