html을 조작하기위해 만들어진 언어다 .
웹사이트는 html, css, js로 이루어져있다.
보통 html 파일 내에서 js는
(여기서 js는 초기에 인터프리터 언어지만 엔진에 따라 컴파일러도 가능(ex. v8엔진))
다만 브라우저는 html 전에 js를 읽을 수도 있는데 이걸 해결하기 위해 async나 defer를 사용하는데
defer는 사용자 지정 순서대로 js를 실행할 수 있음 async는 비동기라 먼저 끝나는 걸 먼저 보냄
따라서 defer를 사용해보자
DOM은 문서의 구조화된 표현(structured representation)을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다.
DOM 은 웹 페이지의 객체 지향 표현이며, 자바스크립트와 같은 스크립팅 언어를 이용해 DOM 을 수정할 수 있다.
렌더링 엔진이 HTML 파일을 해석해서 웹문서를 객체화해 js로 접근가능하게 만들어 준 것이다.
**렌더링 엔진**
: 웹문서 해석해주는 것
html이 dom에 접근해서 가져오고 javascript는 dom에 접근에 조작을 한다.
이렇게 javascript가 html을 조작할 수 있도록 함 .
document.getElementById(id)
document.getElementsByTagName(name)
document.createElement(name)
parentNode.appendChild(node)
element.innerHTML
element.style.left
element.setAttribute
element.getAttribute
element.addEventListener
참고
https://developer.mozilla.org/ko/docs/Web/API/Document_Object_Model/Introduction