
DOM은 Document Object Model 의 단축어로, HTML 문서의 구조가 정리된 객체라고 할 수 있겠다.DOM 은 JS에 포함된 것이 아닌, 웹을 구축하는데 사용되는 API 라는 점에서 JS와는 다른 개념임을 알 수 있다.DOM 에 포함된 세부 정보들을 지칭하는 말이다.<body>, <div>, <span>, <input> 등이 속해있다.class="", id="", type="" 등이 속해있다.노드는 문서에 포함된 구조를 정리한 것, 요소들은 문서를 구성하는 것 이라고 나눠 볼 수도 있겠다.
아직은 이해가 어려워서 여기까지만...
script 태그를 이용한다.//JS
console.log(document.querySelector('#this').textContent)
<!--HTML-->
<script> <!--이 위치에선 읽지 못한다.-->
<div id="this">hello world</div>
<script> <!--'hello world', 위의 내용이 불러와졌으므로 해당 내용을 가져 올 수 있다.-->
브라우저가 JS 를 다운받는 것을 fetching, 실행하는 것을 executing 이라고 한다.
JS 를 script 태그로 불러 올 때 기본, async, defer 키워드로 JS를 불러오고 실행하는 방식을 결정 할 수 있다.
브라우저가 HTML 파일을 읽는 과정을 파싱(parsing)이라고 한다.
기본
async
DOM 요소를 사용하지 않아 순서가 상관없는 JS 를 사용하는 경우 사용 할 수 있다.defer
DOM 요소를 사용하여 순서가 필요한 경우 사용 할 수 있다.console.dir 을 사용하면 선택한 요소에 속한 정보들을 객체로 표시한다.children 이라는 프로퍼티는 가지고 있는 자식 엘리먼트들의 정보를 가지고 있는데 이를 확인하여 자식 엘리먼트들을 확인 할 수 있다.확인하려는 요소.children 으로 바로 확인 할 수도 있다.<!--HTML-->
<body>
<div class="first">
<div></div>
<div></div>
<div></div>
</div>
<div class="second">
<div></div>
<div></div>
<div></div>
</div>
</body>
document.body.children // [div.first, div.second, script]
let second = document.querySelector('.second')
second.children// [div, div, div]
console.dir 로 확인해 보았을 때, 자식은 children 에 저장이 되어있다면, 부모 엘리먼트에 대한 정보는 parentElement 프로퍼티에 저장 되어있다.확인하려는 요소.parentElement 로 바로 확인 할 수도 있다.결국
DOM이란 우리가 사용하는 요소의 세부내용을 구조화하여 프로퍼티와 메소드를 가진 객체로 문서를 표현한다.
간단히 HTML의 구조와 정보를 객체의 형태로 가지고 있는 것 이라고 생각해도 좋을 것 같다.
DOM 은 부모는 하나고, 자식은 여러개 인것이 반복된다. 즉, 트리구조를 가지고 있다.