July 30, 2023
프론트 개발자가 되기위해 Javascirpt 공부를 시작하게 되었습니다. Javascript를 좀 더 깊게 공부하고 싶어 모던 자바스크립트 Deep Dive
을 읽고 각 장마다 정리한 글입니다.
웹 브라우저에서 동작하는 유일한 프로그래밍 언어
자바스크립트는 인터프리터 언어이다.
컴파일러 | 인터프리터 |
---|---|
코드가 실행되기 전 단계인 컴파일 타임에 소스코드 전체를 한번에 머신 코드로 변환한 후 실행한다. | 코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간 코드인 바이트코드로 변환한 후 실행한다. |
실행 파일 생성 | 실행 파일 생성하지 않음 |
컴파일 단계와 실행 단계가 분리되어 있다. 명시적인 컴파일 단계를 거치고, 명시적으로 실행 파일을 실행한다. | 인터프리트 단계와 실행 단계가 분리되어 있지 않다. |
인터프리터는 한 줄 씩 바이트코드로 변환하고 즉시 실행한다. | |
실행에 앞서 컴파일 수행 | 코드가 실행될 때마다 인터프리트 과정이 반복 수행 |
컴파일과 실행 단계가 분리되어 있으므로 코드 실행 속도가 빠르다. | 인터프리트 단계와 실행 단계가 분리되어 있지 않고 반복 수행되므로 코드 실행 속도가 비교적 느리다. |
자바스크립트는 명령형(imperative), 함수형(functional), 프로토타입 기반 객체지향 프로그래밍(prototype-based)을 지원하는 멀티 패러다임 프로그래밍 언어다.
모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다. Node.js 도 포함
그러나 브라우저와 Node.js는 용도가 다르다.
→ 브라우저와 Node.js 모두 자바스크립트의 코어인 ECMAScript를 실행할 수 있지만 브라우저와 Node.js에서 ECMAScript 이외에 추가로 제공하는 기능은 호환되지 않는다.
예를 들어 브라우저에서 제공해주는 DOM API는 Node.js에서는 제공하지 않는다.
// index.js
const arr = [1, 2, 3];
arr.forEach(console.log);
// node index.js
1 0 [ 1, 2, 3 ]
2 1 [ 1, 2, 3 ]
3 2 [ 1, 2, 3 ]
플러그인 사용한다면 Window(Ctrl + Alt + N) Mac(control + option + N)으로 간단하게 실행할 수 있다.
클라이언트 사이드 Web API를 포함한 자바스크립트를 실행하려면 브라우저에서 실행해야 한다.
다음 플러그인을 설치하고 Go Live
버튼을 눌러 가상 서버를 띄워 확인이 가능하다.