1995년, 웹 브라우저의 시장을 지배하던 Netscape communications
는 웹 페이지의 보조적인 기능을 수행하기 위해 웹 브라우저에서 동작하는 경량 프로그래밍 언어인 JavaScript
를 도입했다.
이후 1996년, Microsoft
는 자바스크립트의 파생 버전인 JScript
를 만들어 인터넷 익스플로러에 탑재했고,
Netscape communications
과 Microsoft
는 자사 브라우저의 시장 점유율을 높이기 위해서 자사 브라우저에서만 동작하는 기능을 경쟁적으로 추가했다.
이로 인해 브라우저에 따라 웹 페이지가 정상적으로 동작하지 않는 크로스 브라우징
이슈가 발생하여, 자바스크립트의 파편화를 방지하고 모든 브라우저에서 정상적으로 동작하는 표준화된 자바스크립트의 필요성이 대두되었다.
이에 1997년, 표준화된 자바스크립트 초판 ECMAScript 1
사양이 나오게 되었다.
버전 | 출시 연도 | 특징 |
---|---|---|
ES1 | 1997 | 초판 |
ES2 | 1998 | ISO/IEC 16262 국제 표준과 동일한 규칙을 적용 |
ES3 | 1999 | 정규 표현식, try...catch |
ES5 | 2009 | HTML5와 함께 출현한 표준안. JSON, strict mode, 접근자 프로퍼티, 프로퍼티 어트리뷰트 제어, 향상된 배열 조작 기능(forEach, map, filter, reduce, some. every) |
ES6 (ECMAScript 2015) | 2015 | let/const, 클래스, 화살표 함수, 템플릿 리터럴, 디스트럭처링 할당, 스프레드 문법, rest 파라미터, 심벌, 프로미스, Map/Set, 이터러블, for ... of, 제너레이터, Proxy, 모듈 import/export |
... | ... | ... |
ES11 (ECMAScript 2020) | 2020 | String.prototype.matchAll, BigInt, globalThis, Promise.allSettled, null 병합 연산자 등 |
ES5
는 ES3가 공개되고 10년만에 HTML5와 함께 출현하였다.
2015년에 공개된 ES6
는 let/const, class, module, arrow function 등과 같이 범용 프로그래밍 언어로서 갖춰야 할 기능들을 대거 도입하는 큰 변화가 있었다.
ES6 이후의 버전업은, 비교적 작은 기능을 추가하는 수준으로 매년 공개되고 있다.