일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 그럼에도불구하고
- frontend
- @media
- 코딩테스트
- JavaScript
- 프론트엔드
- media query
- 자바
- github
- HTML
- 그럼에도 불구하고
- CSS
- react-router-dom
- react
- node
- 반응형 페이지
- 자바문제풀이
- java
- TypeScript
- redux
- 코드업
- cleancode
- JS
- coding
- git
- max-width
- webpack
- node.js
- 변수
- Servlet
- Today
- Total
그럼에도 불구하고
[JavaScript] NodeList란? 본문
오늘은 NodeList에 대해 알아보겠습니다.
목차
[ NodeList ]
NodeList 객체는 일반적으로 element.childNodes와 같은 속성(property)과 document.querySelectorAll와 같은 메서드에 의해 반환되는 노드의 컬렉션입니다.
※ 참고: NodeList가 Array는 아니지만, forEach()를 사용하여 반복할 수 있습니다. 또한 Array.from()을 사용하여 Array로 변환할 수도 있습니다. 그러나 일부 오래된 브라우저는 아직 NodeList.forEach() 또는 Array.from()를 사용할 수 없는데 이럴 때는 Array.prototype.forEach()를 사용하면 됩니다.
경우에 따라 NodeList는 라이브 컬렉션으로, DOM의 변경 사항을 실시간으로 컬렉션에 반영합니다. 예를 들어, Node.childNodes는 실시간입니다.
var parent = document.getElementById('parent');
var child_nodes = parent.childNodes;
console.log(child_nodes.length); // let's assume "2"
parent.appendChild(document.createElement('div'));
console.log(child_nodes.length); // should output "3"
이외의 경우 NodeList는 정적 컬렉션입니다. DOM을 변경해도 콜렉션 내용에는 영향을 주지 않습니다.
document.querySelectorAll()은 정적 NodeList를 반환합니다.
[ 속성 (Properties) ]
📌 NodeList.length
NodeList의 노드의 개수를 반환합니다.
[ 메서드 (Methods) ]
📌 NodeList.item()
리스트 내 항목(item)의 인덱스를 반환하고, 인덱스가 범위 외의 경우일 땐 null을 반환합니다.
nodeList [idx]의 대안으로 사용할 수 있습니다. ( i가 범위를 벗어날 때(out-of-bounds) undefined를 반환합니다. )
📌 NodeList.entries()
iterator를 반환하여 코드가 컬렉션에 포함된 모든 키/값 쌍을 순회할 수 있도록 합니다. ( 이 경우 키는 0부터 시작하는 숫자이고, 값은 노드가 됩니다. )
📌 NodeList.keys()
iterator를 반환하여 콜렉션에 포함된 키/값 쌍의 모든 키를 코드가 순회하도록 합니다. (이 경우 키는 0부터 시작하는 숫자입니다.)
📌 NodeList.values()
콜렉션에 포함된 키/값 쌍의 모든 값(nodes)을 코드가 순회할 수 있게 해주는 iterator를 반환합니다.
※ Ref: https://developer.mozilla.org/ko/docs/Web/API/NodeList
'JavaScript > JavaScript basics' 카테고리의 다른 글
[JavaScript] Fetch와 Axios의 차이점 비교 (0) | 2023.09.05 |
---|---|
[JavaScript] IntersectionObserver API란? (0) | 2023.07.18 |
[JavaScript] Puppeteer란? (0) | 2023.04.20 |
[JavaScript] Jest란? (0) | 2023.04.20 |
[JavaScript] 폴리필(Polyfill)과 바벨(Babel)이란? (0) | 2023.04.12 |