類數組:是一種相似數組的對象,並提供了一種用於訪問原始二進制數據的機制,但不是真正的數組。數組
js 中類數組對象有不少,例如arguments
、 NodeList
、 HTMLCollection
、 jQuery
等app
MDN - JavaScript 類型化數組prototype
length
屬性var a = document.getElementsByTagName("div"); a.__proto__; // HTMLCollection {} 屬於類數組對象 a.length; // 44
a[0]; // <div id="app">...</div>
a.slice; // undefined
instanceof
操做不屬於 Array
a instanceof Array; // false a instanceof Object; // true
Array.prototype.slice.call()code
var arr = Array.prototype.slice.call(a) arr instanceof Array; // true
Array.from()對象
var arr = Array.from(a) arr instanceof Array; // true
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]) // c console.log(array_like.length) // 3 console.log(array_like instanceof Array) // false // 6. 轉換爲真數組 var arr = Array.prototype.slice.call(array_like); arr instanceof Array; // true