JavaScript의 ES란?
ECMA Script(ES)
자바스크립트는 1990년대 Netscape 회사의 Brendan Eich 라는 사람에 의해 최초 개발되었다. 자바스크립트가 잘 되자, MS에서 Jscript라는 언어를 개발해 IE에 탑재하였는데, 이 두 스크립트가 너무 제가각이라, 표준이 필요하게 되었다.
표준을 위해 자바스크립트를 ECMA(European Computer Manufactures Association)라는 정보와 통신시스템의 비영리 표준 기구에 제출하였고 표준에 대한 작업을 ECMA-262란 이름으로 1996년 11월에 시작해 1997년 6월에 채택되었습니다.
둘 다 뒤에 Script라는 키워드가 붙지만, 자바스크립트는 언어이고, ECMA 스크립트는 규격, 표준 즉, 스펙을 말합니다.
ES1, ES2, ES3, ES4
ES1 : 1997년 6월 — ES2 : 1998년 6월 — ES3 : 1999년 12월 — ES4 : 포기
이들은 ECMAScript 의 처음 4개 에디션이었으며 처음 세 판은 매년 발행되었으며 네 번째 판은 정치적 차이로 인해 폐기되었다.
ES3(1999)
우리가 흔히 말하는 자바스크립트이다. 함수 단위의 스코프, 호이스팅, 모듈화 미지원, 프로토타입, 클로저 등등 자바스크립트의 기본적인 특징들이 들어있다.
대부분의 브라우저에서 지원하고, IE8까지 크로스브라우징하는 환경이면 ES3를 쓰고 있다고 생각하면된다.

ES5/ES6 문법 차이
ES5(2009)
4는 너무 급변하는 내용이 있었던지 거절되었고, 그 후에 점진적인 개선을 하고자 5가 나왔다. 기본적으로 IE9부터 본격적으로 지원을 하지만 es5-shim을 사용하면 하위 버전에서도 특정 기능들을 지원해준다.
5부터 추가된 기능으로는 다음과 같다.
- 배열과 관련된 새로운 메소드들이 생겼다. 대표적으로 forEach, map, filter, reduce, some, every등이 있다. 이 메소드들은 개발자가 반복횟수나 조건을 잘못 입력하는 등의 실수를 줄여주었다.
- Object에 대한 getter/setter를 지원한다.
- 자바스크립트의 엄격모드(strict)를 지원한다.
- JSON 지원( 과거에는 XML을 사용했다)
- bind() 메소드가 생겼다. (this를 강제로 bind 시켜주는 메소드이다)
ES6 / ES2015(2015)
ES6 는 출시 이전에 널리 알려진 이름이었으나 ECMAScript 사양을 감독하는 위원회는 연례 업데이트로 전환하기로 결정했다. 이 변경으로 에디션의 이름이 출시 연도를 반영 하도록 ES 2015 로 변경되었으며 후속 릴리스도 릴리스된 연도에 따라 이름이 지정된다.
추가된 기능으로는 다음과 같다.
- let, const 키워드 추가
- arrow 문법 지원
- iterator / generator 추가
- module import / export 추가
- Promise 도입 ( Callback Hell을 해결해 줄 기법이 추가 되었다.)
- Default, Rest 파라미터
- 해체 할당, Spread 연산자
- 템플릿 리터럴
- 호이스팅이 사라진 것 같은 효과
- 함수 단위 스코프에서 블록 단위 스코프로 변경
- 화살표 함수 추가
ECMA 2017(ES8)
async - await의 기능의 추가가 대표적으로 있다.
'TIL' 카테고리의 다른 글
| Package.json (0) | 2022.12.04 |
|---|---|
| MongoDB, Mongoose (0) | 2022.11.28 |
| Express.js (0) | 2022.11.26 |
| HTTP / Web Server (0) | 2022.11.26 |
| 객체 리터럴(object literal), Error handling, 클래스(Class) (0) | 2022.11.26 |