美文网首页
js判断是否是数组

js判断是否是数组

作者: Aries蓝 | 来源:发表于2020-07-09 13:38 被阅读0次
    判断objectName是否是数组
    
    1、objectName instanceof Array
    2、objectName.constructor == Array
    基本数据类型也可以使用此方法。
    
    (123).constructor == Number // true
    1
    1、2判断有误差。
    a)在不同 iframe 中创建的 Array 并不共享 prototype
    b)即使为true,也有可能不是数组。
    function SubArray(){
    }
    SubArray.prototype = [];
    myArray = new SubArray;
    alert(myArray instanceof Array)
    
    3、特性判断
    a)length
    b)splice
    c)length不可枚举
    
    function isArray(object){
        return  object && typeof object==='object' &&
            typeof object.length==='number' &&
            typeof object.splice==='function' &&
            //判断length属性是否是可枚举的 对于数组 将得到false
            !(object.propertyIsEnumerable('length'));
    }
    
    有length和splice并不一定是数组,因为可以为对象添加属性,而不能枚举length属性,才是最重要的判断因子。
    
    4、Array.isArray(objectName);
    ES5方法
    
    5、Object.prototype.toString.call(objectName)
    获取this对象的[[Class]]属性的值.[Class]]是一个内部属性,所有的对象都拥有该属性. 表明该对象的类型
    Object.prototype.toString.call(objectName) === ‘[object Array]‘;
    

    相关文章

      网友评论

          本文标题:js判断是否是数组

          本文链接:https://www.haomeiwen.com/subject/dgnjcktx.html