什么是类数组
长的像数组的对象,类数组又叫伪数组
类数组和数组的区别:
1.都有length属性
2.都可以for循环遍历,有的类数组还可以通过for of遍历
3.类数组不具备数组的原型方法,不可以调用相关数组方法(如,push、slice、concat…)
常见的类数组
1.函数的参数 arguments
2.通过getElementsByTagName,getElementsByClassName,getElementsByName等方法获取的dom列表(也叫HTML Collection)
3.通过querySelectorAll()方法获取的NodeList节点列表
下面,我们来分别看一下这3类类数组
arguments类数组
arguments 是javascript的一个关键字。专指函数的参数集合,它包含了函数的所有参数以及其他属性。它无需定义,可直接在函数体内使用。
function args1(a,b,c){
console.log(arguments);
console.log(typeof arguments);//object
console.log({
}.toString.call(arguments));
}
args1('a','b','c');
可以看出,arguments包含所有参数,并且存在length属性,同时可以看出,他的类型是object,并且转换为string后是 object Arguments,代表是Arguments对象。同时,可以看到,他还有一个属性callee,而这个属性的值好像就是我们定义的这个函数体,那么我们输出看一下:
function logargument(){
console.log(arguments.callee