JavaScript는 브라우저 환경 또는 Node.js 환경에서 실행할 수 있다.
그러나 한 가지 주의할 점은, 브라우저와 Node.js는 용도가 다름을 이해해야 한다.
브라우저
는 HTML, CSS, JS를 실행해 웹 페이지를 브라우저 화면에 렌더링하는 것이 주된 목적이지만,Node.js
는 브라우저 외부에서 JS 실행 환경을 제공하는 것이 주된 목적이다.
예를 들어, 브라우저
는 파싱된 HTML 요소를 선택하거나 조작하는 기능의 집합인 DOM API
를 기본적으로 제공하지만, Node.js
는 HTML요소를 파싱해서 객체화된 DOM을 직접적으로 다룰 필요가 없기 때문에, DOM API
를 제공하지 않는다.
반대로 Node.js
에서는 파일을 생성하고 수정할 수 있는 파일 시스템
을 기본으로 제공하지만, 브라우저
는 이를 지원하지 않는다.
만약 브라우저를 통해 다운로드되어 실행되는 자바스크립트가 사용자 컴퓨터의 로컬 파일을 접근하여 파일을 수정하고 삭제할 수 있다면, 이는 사용자 컴퓨터가 악성 코드에 노출된 것과 다름이 없기 때문이다.
브라우저
는 ESMAScript와 DOM, Canvas, Web Storage 등과 같은 클라이언트 사이드 Web API를 지원하며, Node.js
는 ECMAScript와 Node.js 고유의 API를 지원하므로, 이를 유념해두어야 한다.