js-用于检测类数组对象的函数

//判定o是否是一个类数组对象
//字符串和函数有length属性,但是它们
//可以用typeof检测将其排除。在客户端JavaScript中,DOM文本节点
//也有length属性,需要用额外判断o.nodeType!=3将其排除
function isArrayLike(o){
    if(o&&//o非null/undefined等
        typeof o==="object"&&//o是对象
        isFinite(o.length)&&//o.length是有限数值
        o.length>=0&&//且为非负值
        o.length===Math.floor(o.length)&&//且是整数
        o.length<4294967296){//且小于2^32
            return true;//则o是类数组对象
        }else{
            return false;//否则不是
        }
}

 类数组对象:拥有一个数值length属性和对应非负整数属性的对象,比如arguments对象和一些DOM方法返回的对象。

posted @ 2017-01-12 10:37  ZhangCui  阅读(210)  评论(0编辑  收藏  举报