伪数组

1、伪数组特点

+ 伪数组是一个对象
+ 必须具有length属性
+ 如果length值不为 0 ,必须按照下标存储数
+ 伪数组进行map、forEach遍历时,会报错

2、常见伪数组

+ 函数内部的arguments
+ 获取到的DOM对象集合
    - document.getElementsByTagName('');
    - document.getElementsByClassName('');
    - ...
+ jQuery对象
    - $("div");
    - $(".className");
    - ...

3、伪数组与数组的区别

+ 伪数组不具有数组所具有的方法
+ 对象没有数组 Array.prototype 的属性值,类型是 Object ,而数组类型是 Array
+ 数组是基于索引的实现, length 会自动更新,而对象是键值对
+ 使用对象可以创建伪数组,伪数组可以正常使用数组的大部分方法

4、伪数组转成真数组

<!-- html片段 -->
<ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
</ul>
// 方法一 : 创建新数组
var oLi = document.querySelectorAll('li');
var arr1 = [];
for( var i = 0;i < oLi.length;i ++ ){
        arr1.push(oLi[i]);
}
// 方法二 : slice 方法
var arr2 = Array.prototype.slice.call(oLi);
// 方法三 : ES 6中数组新方法——from()
var arr3 = Array.from(oLi);

推荐阅读更多精彩内容