JavaScript의 ES란? ES5/ES6 문법 차이

최재홍·2023년 4월 9일
0

ES(ECMAScript)란?

JavaScript는 1990년대 Netscape회사의 Brendan Eich라는 인물에 의해 최초로 개발되었다. 자바스크립트가 각광을 받자, MS는 이를 견제하기 위해 J스크립트를 개발하게 된다. 당시 웹브라우저 분야에서 압도적인 점유율을 차지하던 IE에서 J스크립트를 지원하기 시작하자 비슷한 두 스크립트 언어가 사용자들의 혼란을 초래했다. 따라서 여러 스크립트 언어들에 대한 표준의 필요성이 대두되어 ECMA(European Computer Manufactures Association)라는 정보통신 시스템의 비영리 표준 기구에 제출하였고, 채택되었다.

따라서 ECMA스크립트 언어 표준 기구, ECMA스크립트는 스크립트 언어의 표준 혹은 규격이라고 할 수 있다.

ES6를 특히 중시하는 이유?

ES6가 최신 버전이기 때문일까?
아니다. ES는 매년 6월에 규칙적으로 개정이 되고 있고, ES6는 2015년에 출시하였다. 그렇다면 ES6를 특히 중시하는 이유는 무엇일까?
전 버전과 눈에 띄게 기간적 차이가 크기 때문이다. 그것은 버전간 뚜렷한 기능의 차이를 야기했다. ES5가 2009년에 출시되었고, ES6는 2015년에 출시되었다. 때문에 많은 기능들이 추가되었고, ES5 이하 명세에서 문제가 되었던 부분들이 해결되었다. 이는 가독성유지보수성 향상으로 이어졌다. ReactVue 등 유명 라이브러리들도 이에 맞춰 개발 환경을 ES6를 기준으로 하게 되었다. 이러한 이유 때문에 우리는 ES6에 주목하는 것이다. 그리고 취업시장에서도 ES6+를 요구하고 있다.

그렇다면 ES6 이전 내용들은 무시해도 좋은가?

당연히 아니다. 최신의 문법이 아님에도 과거 버전에 대한 이해가 필요한 까닭은 선임자가 남긴 레거시 코드를 최신 문법으로 리팩토링을 해야할 필요성이 있기 때문이고, 과거에 포스팅 된 코드를 검색하여 찾아냈을 때, 해석하고 보수 및 개선하여 활용할 필요가 있기 때문이다.

ES5 / ES6의 구체적인 변경점은?

개별적인 변경점에 대해서는 차후에 더 공부해보기로 한다. 그러기 위해서 차후에 조사할 필요가 있는 키워드와 URL만을 남긴다.

1. let, const 키워드 추가
함수 scope를 가진 var와 block scope를 가진 let과 const

2. arrow 문법 지원
this바인딩 여부, 참고 블로그 URL(https://usefultoknow.tistory.com/entry/ECMA-SCript%EB%9E%80-ES%EB%9E%80)

3. iterator / generator 추가
Iterator와 Generator

4. module import / export 추가
JS의 module, 참고 URL(https://baeharam.netlify.app/posts/javascript/module)

5. Promise 도입 ( Callback Hell을 해결해 줄 기법이 추가)

6. Default, Rest 파라미터
참고 URL(https://poiemaweb.com/es6-extended-parameter-handling)

7. 해체 할당, Spread 연산자

8. 템플릿 리터럴

9. 호이스팅이 사라진 것 같은 효과

10. 함수 단위 스코프에서 블록 단위 스코프로 변경

0개의 댓글