본문 바로가기

Computer Programming/Javascript

WIL - JS ECMAScript(ES)란? ES5와 ES6의 주요 발전

오늘은 JS ECMAScript의 정의와 발전 과정, 특히 주요한 발전이었던 ES5와 ES6에 대해 공부했다.

 

https://dev.to/faithfulojebiyi/new-features-in-ecmascript-2021-with-code-examples-302h

JavaScript가 웹 개발을 위해 가장 일반적으로 사용되는 '언어'라면 ES는 이 JavaScript의 기능과 문법, 객체 모델을 정의하고 있는 규격, 표준이라고 할 수 있다.

 

 

ES5는 2009년에 출시된 ECMAScript 5의 줄임말로, JavaScript에 많은 개선을 가져온 주요한 규격이다. 

 

1. ES5

- strict mode (엄격 모드)의 도입 : 코드 자성의 실수나 잠재적인 오류를 방지하기 위한 규칙 도입

- 배열 메소드 추가: forEach, map, filter, reduce 메소드 

- JSON객체

- bind 메소드 등

 

 

ES6는 2015년에 출시된 ECMAScript 2015의 줄임말고 자바스크립트에 많은 혁신과 발전을 가져왔다.  주요 발전 중 하나는 스코프이다.

 

 

2. ES6

- let과 const의 도입: 블럭 범위 변수 선언 지원

- 화살표 함수('=>') : 더 간결한 함수 표현식을 작성할 수 있게 되었다. 이 화살표 함수는 함수 컨텍스트 내에서 this를 자동으로 바인딩 한다. 그리고 function 키워드보다 짧은 문법으로 함수를 정의할 수 있다.

- 클래스: 프로토 타입 기반 상속을 간결하게 작성할 수 있는 클래스 문법을 도입했다. class 키워드로 클래스를 정의하고, constructor 메소드로 객체 초기화를 수행할 수 있다.

- 템플릿 리터럴: 백틱으로 감싸진 문자열을 작성할 수 있고 여러 줄에 걸쳐 문자열을 작성할 수 있다.

- destructuring 할당: 배열이나 객체의 속성을 추출하여 변수에 바로 할당할 수 있는 문법이다. 

- Promise 객체: 비동기 작업의 성공 또는 실패를 처리하기 위한 표준화된 방법을 제공한다.

- Generator 함수: 'function'키워를 사용하여 제너레이터 함수를 정의할 수 있다. 제너레이터는 실행을 중지하고 재개할 수 있는 함수로, 비동기 코드 작성을 간소화하는데 유리하다.

 

 

ES6에서 도입된 개선사항은 자바스크립트의 가독성과 유지 보수성, 개발 생산성을 더욱 향상 시켰다. 이후 ES2020, 2021 등의 버전들도 새로운 기능을 꾸준히 도입하여 자바스크립트의 입지를 넓히고 있다.