직접 리터럴로 선언한 array만 배열임
유사배열의 조건
0부터 순차적으로 증가하는 프로퍼티 키 값을 갖고 length키 값을 갖는 객체
var yoosa = {
0: 'a',
1: 'b',
2: 'c',
length: 3
}
위처럼 yoosa 객체가 바로 유사배열
배열도 객체라는 성질을 이용한 트릭
배열과 유사배열을 구분해야 하는 이유는 유사배열의 경우 배열으 ㅣ메서드를 쓸 수 없기 때문
하지만 배열 prototype에서 빌려오면 사용할 수 있음
var nodes = document.querySelectorAll('div'); // NodeList [div, div, div, div, ...]
var els = document.body.children; // HTMLCollection [noscript, link, div, script, ...]
Array.prototype.forEach.call(nodes, function(el) { console.log(el); });
[].forEach.call(els, function(el) { console.log(el); });
최신 JS에서는 Array.from으로 더 간단하게 사용할 수 있음
Array.from(nodes).forEach(function(el) { console.log(el) });