初识“类数组”
字面意思,像数组,但其实不是数组,我理解就是个有特殊key值的map,所以它没有数组的方法。
javascript中最常见的类数组有函数体内的arguments
对象和DOM方法的返回结果( 比如document.getElementsByTagName()
)。
特征:
1. 应该有特殊key值-“length”,并且是数字型或可以转换城数字型的值
2.应该有特殊key值-0/1/2……,也要是数字型或可以转换城数字型的值
但根据定义,只要满足特征1,那它就是类数组了,但如果没有特征2,那我觉得就没有什么操作意义了。
应用:
将类数组转为普通数组
var a = {'0':1,'1':2,'2':3,length:3};
// 可以直接用数组原型方式调用
[].join.call(a, ','); // 1,2,3
// 也可以转成数组后使用
var arr = [].slice.call(a); [1,2,3]