ES에 대해 알아보기 전에, JavaScript에 대해 간단히 알아보자.
JS는 웹페이지 구성요소 삼대장언어로 97%이상의 웹페이지는 클라이언트 사이드 웹동작에 JS를 사용하고, 모든 브라우저는 Javascript engine (e.g. 크롬-V8, 마이크로소프트-차크라, 파이어폭스-스파이더몽키, 사파리-웹킷)을 가지고 있어 JS code의 실행을 맡는다.
JS를 탄생시킨 넷스케이프와 Jscript를 선보인 마이크로소프트의 경쟁으로 2000년대 초반에는 같은 동작을 구현하기 위해 브라우저마다 다르게 코드를 써야하게 되었고, 이는 개발자들이 등터지는 상황을 초래했다. 결국 ECMA (European Computer Manufacturers Association)에서는 모든 브라우저간의 호환성을 위해 ECMAScript (ES)라는 표준 스펙을 세웠다.
ActionScript (from Macromedia/Adobe Systems)와 JScript (from Microsoft)를 위한 ES도 존재하지만 가장 잘알려진 것이 JavaScript의 ES이다. ECMAScript compatibility table 에서 더 자세한 내용의 호환성을 확인할 수 있다.
1997년 ES1 버전을 내고 2018년의 ES9까지 총 9개의 버전이 있는데 ES4까지의 버전들은 역사속으로 사라졌으니 여기서는 나머지 버전들 중 ES5와 ES6를 크게 3가지로 비교해보자.
1. Scope 확대: 변수의 생명주기에 차이를 주기 위해 기존의 var에서 확대되어 const와 let이 추가되었다.
2. Arrow function 추가: 화살표로 함수를 나타낼 수 있도록하여 가독성을 개선했다.
3. Template literal 추가: back tic으로 문자열 관리가 간편해졌다. ${}를 통해 JS 표현식의 삽입을 가능하게 해준다.