伪数组特点:
- 必须是对象
- 必须有length属性
- length 属性必须是数字
- 如果length 不为0时,必须有以下标存储的数据
- 伪数组不可以调用真数组的API(push , map, ...)
示例:
- 伪数组
- var ob1 = {0:'1111',length:1}
- var obj2 = {96:'1111',length:100}
- var obj3 = {length:0}
- 不是伪数组
- var obj4 = {length:3}
- var obj5 = {}
在使用原生的方式获取dom元素的时其实获取的就是伪数组,他是一个html元素的合集,这也就是一般在处理html元素合集的时候使用的是for循环而不是map/foreach 的原因了.
判断是否是数组的方式
console.log(数据 instanceof Array);
console.log(Object.prototype.toString.call(数据) === "[object Array]")