javascript类数组转数组

1:什么是类数组

简单的说--具有数组的length属性,但是不具备数组的方法,如shift,unshift,splice,slice,concat,reverse,sort,forEach等

2:使用场景

     1:函数内部arguments对象

     2:获取的dom对象,如$('ul li')

 

3:测试arguments

 
 
    test(10,20,30);
    function test(a,b,c,d) {
        console.log('arguments:',arguments);
        console.log('length:',arguments.length);
        arguments.forEach((item)=>{
            console.log('item:',item);
        })
    }


 程序结果如下:

javascript类数组转数组_第1张图片

 

4:测试dom操作场景

    

 




    
    Title


  • 1
  • 2
  • 3
  • 4
  • 5

程序执行效果:

 从上面两个例子中我们可以发现,类数组虽然具有数组的length 属性,但是没有数组的方法,所以都会报错,那么怎样才能使其具有方法呢?

 

5:类数组转数组




    
    Title


  • 1
  • 2
  • 3
  • 4
  • 5

  

 转化之后再执行上面的程序后可以正常使用

javascript类数组转数组_第2张图片

6:总结:

类数组转数组的核心代码就是:Array.prototype.slice.call(arr);至于原理可以自己去深入研究一下,本文不作具体阐述

你可能感兴趣的:(javascript)