늘보블로그
ECMAScript 본문
자바스크립트와 ECMAScript
ECMAScript
- ECMAScript: 자바스크립트의 표준 사양인 ECMA-262. 프로그래밍 언어의 값, 타입, 객체와 프로퍼티, 함수, 표준 빌트인 객체 등 핵심 문법을 규정.
- 각 브라우저 제조사는 ECMAScript 사양을 준수해서 브라우저 내장 자바스크립트 엔진을 구현.
자바스크립트
- 자바스크립트: 기본 뼈대를 이루는 ECMAScript와 브라우저가 별도 지원하는 클라이언트 사이드 Web API(DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web Worker 등)을 아우르는 개념
- 클라이언트 사이드 Web API는 ECMAScript와 별도로 월드 와이드 웹 콘소시엄World Wide Web Consortium, W3C에서 별도의 사양으로 관리함
자바스크립트의 특징
- 웹 브라우저에 동작하는 유일한 프로그래밍 언어
- 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어
컴파일러 언어 | 인터프리터 언어 |
---|---|
코드가 실행되기 전 단계인 컴파일 타임에 소스코드 전체를 한번에 머신 코드로 변환한 후 실행 | 코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간 코드인 바이트 코드로 변환한 후 실행 |
실행파일 생성 | 실행파일 생성 X |
컴파일 단계와 실행 단계가 분리. 명시적인 컴파일 단계를 거치고 명시적으로 실행 파일을 실행 | 인터프리트 단계와 실행 단계가 분리되지 않음. 인터프리터는 한 줄씩 바이트 코드로 변환하고 즉시 실행 |
실행 전 컴파일은 한 번만 수행 | 코드 실행 시마다 인터프리트 반복 수행 |
컴파일과 실행 단계가 분리되어 코드 실행 속도가 빠름 | 반복 수행으로 코드 실행 속도가 느림 |
- 대부분의 모던 자바스크립트 엔진은 인터프리터와 컴파일러 방식을 결합 -> 인터프리터의 동적 기능 지원 + 컴파일의 빠른 실행이 가능
- 명시적인 컴파일 단계를 거치지는 않지만 일부 소스코드를 컴파일하고 실행함
- 컴파일러와 인터프리터의 기술적 구분이 모호해졌지만 자바스크립트는 런타임에 컴파일되며, 실행 파일이 생성되지 않고, 인터프리터의 도움 없이는 실행 불가능하므로 컴파일러 언어라고는 할 수 없음.
- 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어
'스터디로그 > javascript' 카테고리의 다른 글
표현식 (0) | 2020.12.03 |
---|---|
변수 (0) | 2020.12.03 |
발전사 (0) | 2020.12.02 |
역사 (0) | 2020.11.30 |
prettier 사용 시 화살표 함수 에러 (0) | 2020.09.07 |