자바스크립트 엔진(JavaScript engine)은 자바스크립트 코드를 실행하는 프로그램 또는 인터프리터이다. 자바스크립트 엔진은 전통적인 인터프리터일 수도 있고, 특정한 방식으로 바이트코드로 JIT 컴파일을 할 수 있다. 여러 목적으로 자바스크립트 엔진을 사용하지만, 대체적으로 웹 브라우저에서 사용된다. feat.Wiki
자바스크립트를 공부하는데 엔진을 왜 공부해야하냐? 라고 궁금해 하는 사람들이 많다. 엔진을 깊게 공부한다기보단 자바스크립트 환경
을 이해한다는 개념으로 접근해야한다.
자바스크립트 엔진이란 자바스크립트 코드를 마이크로프로세서가 이해할 수 있는 낮은 레벨 또는 기계 코드로 변환하는 프로그램이다. Javascript 엔진의 기본 작업은 개발자가 작성한 Javascript 코드를 빠르게 변환하고, 애플리케이션에 내장화 하거나 브라우저가 해석 가능하도록 최적화 하는 것이다.
자바스크립트의 가장 일반적인 호스트 환경은 **웹 브라우저**
이다. 웹 브라우저는 일반적으로 퍼블릭 API를 사용하여 문서 객체 모델(DOM)을 자바스크립트에 반영하는 일을 맡는 호스트 오브젝트를 생성한다.
하지만 웹브라우저가 다양한것처럼 자바스크립트 엔진도 다양하다. 다양하다는 뜻이 각 브라우저 별로 다른 명령어를 입력해야한다는 뜻이 아닌 조금씩 다른 방식으로 렌더링
한다는 말이다.
이중 제일 유명한 엔진은 갓구글이 개발한 갓V8엔진이며 얼마나 성능이 좋으면 현재 노드JS 엔진으로도 사용되고있다.
자바스크립트는 기본적으로 인터프리터언어이다. 하지만 위에서 언급한 엔진들은 비교적 처리 속도가 느린 인터프리터의 단점을 해결하고자 인터프리터와 컴파일러의 장점을 결합했다(타입스크립트는 컴파일언어입니다.)