HTML이나 CSS만으로는 부족한 기능을 보충하기 위해 사용
브라우저에 표시된 HTML이나 CSS 변경 / 정보 읽기
const toDoList = document.getElementById("todo-list");
브라우저를 조작하기 위해 사용
웹페이지에 생동감을 불어넣기 위해 만들어짐
DOM (Document Object Model)
: 문서 객체 모델
JS와 같은 프로그래밍 언어들이 마크업 언어(XML, HTML 문서)에 접근하기 위한 인터페이스를 제공하기 위해 객체로 만들어짐
각각의 요소에 접근하여 텍스트, 스타일, 속성 등을 조작할 수 있게 도와줌
const button = document.createElement("button");//DOM요소에 접근
button.innerText = "❌";
button.addEventListener("click", deleteToDo);//DOM요소에 이벤트 할당
DOM으로 렌더링된 HTML의 요소들은 JS 등에 의해 동적으로 변경 가능, 변경된 값들은 그대로 HTML에 반영
HTML을 파싱하여 모든 요소와 텍스트, 태그들을 **트리 구조(Layer Trees)**로 만듦
출처: https://velog.io/@404/자바스크립트-핵심컨샙33-11.-DOM-and-Layout-Trees
→ DOM tree라고도 불림
DOM의 특별한 특징들