当我们了解伪数组之前先了解下普通的数组的特点

数组是用来存储一系列值的一个集合,而每个值在数组里面都有一个对应的索引,也可以叫做下标,索引是从0开始的,依次递增。
比如:

let arr = ['a','b','c'];
// 字符串a,b,c对应的下标分别为0, 1, 2,使用 数组名字[索引] 的方法即可取到对应的值。

数组的length为数组当中所存值的总个数,比如上方定义的arr数组的length就是3。

伪数组的介绍:
伪数组我们可以理解为类似数组的一个集合,我们常见的有俩个,一个是arguments还有一个是DOM的children属性,获取回来的子节点集合。他们与数组一样,具有索引(下标)和length属性。可以通过for循环写循环语句去循环遍历。我们可以简单看一下伪数组的样子:
arguments伪数组的样子:
伪数组是什么?伪数组与数组的区别,将伪数组变成真数组。_伪数组介绍
children伪数组的样子:
伪数组是什么?伪数组与数组的区别,将伪数组变成真数组。_数组与伪数组区别的详细介绍_02

伪数组与数组的区别:
伪数组与数组的区别就是它们的_proto_区别,
普通数组有很多数组的方法,比如说push,shift,map等等,详见:
数组常用方法总结(上)
数组常用方法总结(下)
ES5新增数组遍历迭代的方法
而伪数组却没有,所以我们称这类解构类似数组却没有数组方法的集合叫做伪数组。

将伪数组变成真数组的方法:

// 假设我们获取到了一个一个页面的所有div,这就是一个伪数组。
const fakeArr = document.getElementsByTagName('div');
// 我们可以进行重新赋值也可以用一个新变量接收或者在上方就进行转换简写都可以,笔者拿个新变量接收他。
// 如果你要重新赋值别忘了将const变成let。
const realArr = Array.prototype.slice.call(fakeArr);