자바스크립트는 호스트 환경에서 실행된다.
즉, 자바스크립트 엔진이 일부가 될 수 있고, 다른 환경에서 실행될 수도 있음을 의미한다.
그 유명한 V8엔진
은 어디에서나 자바스크립트를 실행할 수 있도록 개발되었다.
모든 브라우저에 엔진이 있다면 엔진은 브라우저에서 떼어내 독립적인 도구로 만들어, 다른 곳에서 자바스크립트를 실행할 수 있다. 라는 생각에서 착안됐다.
=> 이렇게 해서 만들어진 도구가 Node.js 이다.
Node.js는 어느 컴퓨터에서나 실행될 수 있고 웹 서버나 백엔드를 구축하는데 사용된다. (Server-Side-JavaScript)
Node.js에서의 자바스크립트는 사용자의 브라우저(클라이언트)에서가 아닌 서버측에서 실행되는 것이다.
Node.js는 컴퓨터에서 바로 실행되기 때문에 로컬 파일 시스템으로의 접근과 파일 작성 등의 작업이 가능하다.
브라우저에서의 자바스크립트와는 다르게 웹페이지에 접속한다고 실행되는 것이 아니라, 사용자가 직접 실행해야함을 의미한다.
실행되고 있는 머신 내의 파일 시스템에만 접근 가능하다. (사용자의 컴퓨터가 아닌, 실행 중인 서버)
OS와도 상호 작용할 수 있다. 하지만 로드된 웹페이지에 직접 접근할 수 없기 때문에 HTML이나 CSS를 조작할 수는 없다.
이처럼 자바스크립트는 어떤 환경에서 실행되느냐에 따라 수행가능한 작업이 달라진다.