介绍
类数组:是一种相似数组的对象,并提供了一种用于拜访原始二进制数据的机制,但不是真正的数组。
js 中类数组对象有很多,例如arguments
、 NodeList
、 HTMLCollection
、 jQuery
等
MDN - JavaScript 类型化数组
对象个性
1. 领有 length
属性
var a = document.getElementsByTagName("div");a.__proto__; // HTMLCollection {} 属于类数组对象a.length; // 44
2. 能够应用数字下标形式拜访对象
a[0]; // <div id="app">...</div>
3. 不能应用数组原型办法,如slice、pop等
a.slice; // undefined
4. 应用 instanceof
操作不属于 Array
a instanceof Array; // falsea instanceof Object; // true
5. 能够被转换为真数组
Array.prototype.slice.call()
var arr = Array.prototype.slice.call(a)arr instanceof Array; // true
Array.from()
var arr = Array.from(a)arr instanceof Array; // true
6. 可自定义其余属性
a.name = 'div汇合';
创立一个类数组
// 1. 创立空对象var array_like = {};// 2. 增加下标属性array_like[0] = 'a';array_like[1] = 'b';// 3. 增加length属性 和 push 属性array_like.length = 2;array_like.push = Array.prototype.push;// 4. 调用下array_like.push('c')// 5. 检测console.log(array_like[2]) // cconsole.log(array_like.length) // 3console.log(array_like instanceof Array) // false// 6. 转换为真数组var arr = Array.prototype.slice.call(array_like);arr instanceof Array; // true