element.childNodes
속성 또는 document.querySelectorAll
메서드에 의해 반환되는 콜렉션이다.for, for...of, forEach
를 사용하여 반복할 수 있다.document.querySelectorAll()
는 정적 NodeList 반환한다.
nodeList는 array
타입이 아니기 때문에
filter
,reduce
와 같은 array 메서드
를 사용할 수 없다 ❌
nodeList
배열을 스프레드 연산자를 사용해 변환하면 순수한 배열로 받아 접근할 수 있다 const $keys = document.querySelectorAll(".keys");
const $keysArray = [...$keys];
console.log(Array.isArray($keysArray), Array.isArray($keys)); //true , false $keysArray는 배열이고 $keys는 노드리스트이기 때문에
Array.from()
메서드는 유사 배열객체 나 반복 가능한 객체를 const $keys = Array.from(document.querySelectorAll(".keys"));
console.log($keys);
console.log(Array.isArray($keys)); //true
querySelectorAll()
를 사용할 땐 배열이 아닌 노드리스트로 받아오므로스프레드연산자(...)
을 사용하거나 Array.from()
메서드를 사용하자!