js类数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js类数组相关的知识,希望对你有一定的参考价值。

类数组 - [ Array-like ] : objects

1. what‘s Array-like

  类数组和数组很像,但是数组的很多方法却不能用,这就很尴尬了~

  像 arguments、nodelist 等这些数据有序集合,有长度和下标等属性,但却不是 Array. 这就是所谓的 Array-like(类数组/伪数组)。对于 Array-like 我们可以用跨原型链来操作,eg :Array.prototype.slice.call(arguments, 0); 这也是把 Array-like 转化成 Array 的方法哦。

2. 自己构造 Array-like 

  技术分享

  就是添加 Array 的原生方法到 自己创建的 Object 里。

  如果不给 a 添加 length 属性。push 的时候会把 a[0] 和 a[1] 覆盖掉。

3. 如何判断是不是 Array

  typeof去判断数组得到的结果是 ‘object’,所以很多 LIB 都采用了 duck typing(鸭子类型检测)的方式,它的判断条件是: 当对象的 length 属性是一个数字,并且 splice 属性是一个 function, 那么这个对象就是数组。

 

 

 

  

  

 

以上是关于js类数组的主要内容,如果未能解决你的问题,请参考以下文章

JS === 类数组(伪数组)

js类数组

js 数组和类数组的区别

js类数组转数组的方法(ArrayLike)

js类数组转数组的方法(ArrayLike)

js怎么判断一个对象是否类数组对象