1.什么是类数组?与数组的区别是什么?

var obj ={
  length:3,
  "0":'a',
  "1":'b',
  "2":'c'
} //这就是一个类数组

1.1 类数组是对象类型,key是类似于数组索引

1.2 里面有key也有length

总结:1. 一个拥有length属性和若干索引属性的对象可以被称为类数组对象。

           2.类数组是一个普通对象,而真实的数组是Array类型。

           3.类数组不能调用数组的API

2.常见的类数组有什么?

 2.1 arguments

//arguments
function f1(a,b){
  console.log(arguments) // 类数组
  console.log(arguments instanceof Array) //false
}

f1(1,2) 

2.2 document.queryselectorAll

//假设body标签里面存在很多div标签
var divs = document.querySelectorAll('div') 
console.log(divs) //这也是一个类数组 NodeList节点

3.类数组转化成数组方法

Array.from(类数组)

//接着上面的divs
var arr_divs = Array.from(divs)
console.log(arr_divs) //数组

4.用call来实现类数组调用数组的API

 var obj = {
        length: 3, //类数组必须要有length属性!
        '0': 'a',
        '1': 'b',
        '2': 'c'
    }
    //可以理解成obj.toArray().slice()
    var arr1 = Array.prototype.slice.call(obj, 0, 1) //slice 截取 
    console.log(arr1);

这个知识点我用不到哈哈哈

以上是我对类数组和数组之间的理解,希望可以帮助到大家!!!

疫情期间一定要带好口罩注意保护好自己!

再附上照片一张

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐