자바스크립트는 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
인터프리터 언어
인터프리터 언어 | 컴파일러 언어 |
---|---|
런타임에 문 단위 코드를 한줄 씩 바이트코드로 변환 후 실행 | 런타임 이전인 컴파일 단계에 전체를 머신코드로 변환 후 실행 |
실행 파일을 생성하지 않음 | 실행 파일을 생성 |
인터프리트 단계와 실행 단계가 분리되어 있지 않음 | 컴파일 단계와 실행 단계가 분리되어 있음 |
코드를 실행할 때 마다 매번 인터프리트 단계가 실행되기 때문에 속도가 느림 | 실행 전 컴파일 단계가 한번만 실행되기 때문에 속도가 빠름 |
상단에 언급했다시피 자바스크립트는 웹 브라우저에서 동작하는 언어이자 웹 브라우저에서 동작하는 유일한 언어이다.
Node.js 가 개발되면서 웹 브라우저 환경만이 아닌 Node.js 환경에서도 자바스크립트를 사용할 수 있게 되었다.
브라우저 환경에서의 자바스크립트는 HTML과 CSS, Javascript를 이용해 브라우저 화면에 렌더링 하는 것이 주된 목적이지만,
Node.js 환경은 브라우저 외부에서 자바스크립트 실행 환경을 제공해 주는 것이 주 목적이다.
따라서 브라우저와 Node.js 모두 자바스크립트의 코어인 ECMAScript를 제공하지만 그 외의 기능들은 호환되지 않는다.
예로, 브라우저 환경은 HTML요소를 선택하거나 조작하는 기능의 집합인 DOM API를 기본적으로 제공하지만, Node.js 환경은 파일을 생성하고 수정할 수 있는 파일 시스템을 기본적으로 제공한다.