ES는 1997년 6월 초판을 발행을 시작으로 총 12판까지 발행 되었다. 그 중 중요한 내용만 간단하게 추려보겠다.
ES1~3
ES4
ES5
ES6
화살표 함수(Arrow Function)가 추가되어 함수를 간결하게 나타낼 수 있게 되었다.
block-level-scope를 가지며 재할당이 가능한 let, const 키워드가 추가 되었다.
원래는 인자가 없거나 undefined인 경우 들어 갈 기본 값을 설정해 놓았어야 됬는데 기본 매개 변수(Default parameter) 추가로 인해 지정한 기본 값을 인자로 전달할 수 있게 되었다.
Template literal 추가로 인해 ``(back tic)을 사용하여 여러 라인의 문자열도 쉽게 사용이 가능해졌다. (${name} 표시를 통해 JavaScript 표현식을 삽입 가능하다.)
Multi-line string 추가로 ``(back tic)을 사용하여 여러 줄의 문자열을 처리하기 수월해졌다.
String Method(includes/포함되어 있는 지, startsWith/시작되는지, endWith/끝나는 지)의 추가 결과 값은 true/false로 리턴되며 검사 로직 수행 가능해 졌다.
객체 정의 방식의 개선 되었다. 속성과 값이 같으면 1개만 기입이 가능하며 속성에 함수를 정의 할 때 function을 생략 가능하게 되었다.
Class의 추가로 객체 지향 프로그래밍이 가능해 졌고 ES5에서 보다 더 간결하고 편하게 코드를작성 할 수 있게 되었다.
Module의 추가로 코드의 재사용이 간편해 졌다. Moudle을 사용하면 하나의 파일에 다른 파일의 코드를 불러 올 수 있다. import, from, export, default 등의 전용 키워드를 사용해 가독성을 높였고 비동기 방식으로 작동해 성능과 메모리 부분에서 유리하다는 장점이 있다.
구조 분해 할당(Destructuring Assignment)의 추가로 배열이나 객체의 요소를 해체하여 별개의 변수로 추출 할 수 있게 되었다.
비동기 처리에 사용되는 객체인 Promise가 추가 되었다.