1.什么是伪数组?
伪数组(类数组):无法直接调用数组方法,也无法使用length属性实现什么特殊的行为,但是!可以使用真正数组遍历的方法(for循环配合数组下标)来遍历它们。
能通过Array.prototype.slice转换为真正的数组的带有length属性的对象。
符合以下条件的对象就是伪数组:
1.具有length属性;
2.按索引方式存储数据;
3.不具有数组的pop(),push()等方法。
2.常见的伪数组
function内的arguments,arguments是一个对象而非一个数组。
调用getElementsByTagName,getElementsByClassName等各类获取元素的方法,这些方法返回的是一个NodeList(节点列表),并不是一个数组。
3.将伪数组转换成数组
使用Array.prototype.slice.call();
或者使用es6的Array.from()方法。