浅析伪数组

  一、伪数组基本概念

  伪数组(类数组):顾名思义,就是不是真实的数组,无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以像遍历数组那样来遍历它们,所以叫伪数组。伪数组本身是个对象,这个对象是形如如下代码的结构:  

<script>
    //伪数组也是对象类型的
    var  obj = {
        0: 'a',
        1: 'b',
        length: 2
    };
    // 伪数组可以像for循环进行遍历
    for (var i = 0; i < obj.length; i++) {
        console.log(obj[i]);//
    }
    //作为对象,但是不可以使用  obj.0进行访问
</script>

  二、伪数组的特点

  1. 必须要有length属性
  2. 如果length属性值为0,那么这个对象有没有元素(key为0,1,2的元素)无所谓
  3. 如果length属性值不为0,那么这个对象一定有"下标"为length-1的元素

  三、典型的伪数组对象

  1. 函数对象的arguments参数就是一个伪数组
  2. getElementsByTagName,document.childNodes之类的,它们都返回 NodeList对象都属于伪数组

  四、伪数组转化为真数组

  可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array 对象

  

原文地址:https://www.cnblogs.com/ldq678/p/9666894.html