프론트엔드 개발자가 자주쓰는 언어 중 자바스크립트(javascript)는. ECMAScript를 표준으로 한다.
ES뒤에 붙는 숫자는 해당 표준의 Edition Number 이고 연단위로 하나씩 나온다.
오늘 살펴볼 ES6는 2015년 6월에 업데이트된 ECMAScript의 6th Edition이다.
첫번째로 살펴볼 특징은 let & const로 엄격해진 자바스크립트다.
let 과 const는 block-scope이고 var는 function-scope다. 이 셋은 모두 변수를 선언할 때 사용하는 예약어다.
각각의 특징을 살펴보자.
var
- 함수블럭만을 스코프로 인정하여 전역 변수 남용이 발생 할 수 있다.
- 변수 중복 선언 허용으로 상수 개념이 없다.
- 변수 선언 이전에 참조할 수 있다.
let, const
- 대부분의 언어와 마찬가지로 모든 블록들을 개별적인 스코프로 사용한다.
- 변수 중복 선언 금지
- let은 값이 변할 수 있는 변수, const는 초기화 후 값이 변하지 않는 변수이다.
- 변수 선언 이전 참조가 불가능하다.
이러한 새로운 변수 예약어의 등장으로 자바스크립트는 용도에 따라 더 세분화된 변수 사용이 가능해졌고, 의미가 명확해지도록 하여 엄격한 js문법을 만들어갔다.
function foo() {
console.log("foo")
} //es6 이전
const foo = () => {
console.log("es6")
} //es6 이후 화살표 함수
ES6에서 새로 생긴 화살표 함수는 리터럴 함수선언보다 간단히 함수를 표현하고 그 의미를 명확히 하기 위해 탄생함.
Promise는 순차적이지 않은 비동기 함수의 실행 순서를 제어할 수 있도록 지원해 주는 기능이다.
장점
- callback hell에서 벗어날 수 있음
- .then()의 return은 다음 .then()의 매개변수로 사용되므로 가독성이 올라감.- .then()을 이용하여 가독성 좋은 연속적인 비동기 코드 작성이 가능하다.
- Promise.all()을 통해 병렬 비동기 코드 작성이 가능하다
- callback 함수를 제 때 실행하지 못하거나 변수 전달 실패가 없다.
단점
- ES5이전에서는 polyfill을 통해 로드해야 한다.
ES6에 대한 주요내용을 간단히 살펴보았다.