인간이 자바스크립트로 작성한 파일을 컴퓨터가 읽도록 도와주는 역할
변환 방식
1. AST를 통해 Tree 구조로 변환된 코드가 최초 인터프리터(Ignition, v8에서 쓰임)에 전달된다. 인터프리터는 Bytecode로 즉시 변환한다.
2. 인터프리터가 코드를 변환하면서 브라우저에게 특정 작업을 지시하는 동안, Profiler는 입력 받은 코드에서 최적화 가능한 부분을 찾아 기록한다.
3. 최적화 가능 부분을 기록한 profiler는 이를 컴파일러에게 전다라고, 컴파일러는 인터프리터에 의해 실시간으로 웹사이트가 구동되는 동안 필요한 부분을 기계어로 변환해 최적화한다.
4. 최적화된 코드를 수행할 차례가 되면, bytecode 대신 컴파일러가 변환한 최적화된 코드가 그 자리를 대체해 실행한다.
-> 이에 의해 코드가 읽으면 읽을수록 중복된 내용은 캐싱처리하여 매우 빨라진다.
<BOM, DOM 구조> 이미지 출처: https://www.splessons.com/lesson/javascript-bom/
• window
: 메인 브라우저 윈도우
• window.navigator
: 브라우저에 대한 정보(버전정보 etc)
• window.screen
: 사용자 화면
• window.history
: 현재 url
• window.frames
: 브라우저 윈도우를 차지하고 있는 프레임들
• window.document
: 메인 브라우저에 표시된 HTML 문서