Javascript - Array-like objects란?

2021. 1. 22. 22:45개발/Node & Javascript

728x90
반응형

개요

실제 자바 스크립트에서의 array와 array-like object의 차이점을 알고 이를 해결할 수 있는 방법에 대해서 알아본다.

array-like object란?

실제로는 object인데, console.log()를 찍을 때, array로 보이게 하는 것 instanceOf Array나, Array.isArray()를 통해서 판별 가능. length의 속성을 가지면 array처럼 보이는 것을 차용함. 결국 배열도 객체이기 때문에 해당 방식을 사용가능

왜 알아야 하는가?

array처럼 보여서 작각하는데, 실제로 forEach 같은 iterator를 사용하지 못함. ( 상위 브라우저는 괜찮으나 하위 브라우저에서 문제 생길 수 있음)

선언 방식

var a = {
    0: 'zzz',
    1: '333',
    2: 'test',
    length: 3
}

예제

문제

var array = [1, 2, 3];
array; // [1, 2, 3]
var nodes = document.querySelectorAll('div'); // NodeList [div, div, div, div, div, ...]
var els = document.body.children; // HTMLCollection [noscript, link, div, script, ...]

Array.isArray( array ) // true
Array.isArray( nodes ) // false
Array.isArray( els ) // false

실제 사례

  1. Jquery의 query selector
  2. DOM의 query selector

참고링크

728x90
반응형