mdn : https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web
DOM은 HTML 문서를 파싱한 결과물로, HTML 문서의 구조와 정보뿐만 아니라 HTML 요소와 스타일등을 변경할 수 있는 프로그래밍 인터페이스로서 DOM API를 제공
자바스크릅트 코드에서 DOM API를 사용하면 이미 생성된 DOM을 동적으로 조작 할 수 있다
CSS와 마찬가지로 자바스크립트 파일을 로드하는 script 태그나 자바스크립트 코드를 콘텐츠로 담은 script 태그를 만나면 DOM 생성을 일시 중단한다
자바스크립트 코드를 파싱하기 위해 자바스크립트 엔진에 제어권을 넘긴다
자바스크립트 파싱과 실행이 종료되면 렌더링 엔진으로 다시 제어권을 넘겨 HTML 파싱이 중단된 지점부터 다시 HTML 파싱을 시작하여 DOM 생성을 재개한다
자바스크립트 파싱과 실행은 브라우저의 렌더링 엔진이 아닌 자바스크립트 엔진이 처리
자바스크립트 엔진은 자바스크립트 코드를 파싱하여 CPU가 이해할 수 있는 저수준 언어로 변환하고 실행
HTML이 DOM, CSS가 CSSOM을 생성하듯이 자바스크립트는 AST(Abstract Syntax Tree) 추상적 구문 트리를 생성
AST 기반으로 인터프리터가 실행 할 수 있는 중간코드인 바이트 코드를 생성하여 실행
토크나이징
파싱
바이트코드 생성과 실행