javascript기반의 nodeJS를 공부해오면서 ES6 기능들을 많이 사용해왔다. let, const, arrow function 등
ES6의 기능들을 유용하게 사용해오면서도 아직까지 ES6에 대한 변경점에 대해 정리했던 적이 없어서
이제부터라도 틈틈이 정리해보려고 한다.
ES6란? (ECMA Script 2015)
ECMA Script
의 약자인 ES
의 6번째 버전이다. 자바스크립트의 표준, 규격을 나타내는 용어이며 설명할 버전인 ES6
는 2015년에 나왔고 그 전 버전인 ES5는 2009년에 나온 버전이다. ES8버전까지 출시된 상태이지만 현재 브라우저 호환성 등 가장 안정적인 버전이 ES6이므로 ES6이 브라우저 표준
이라고 보면 되겠다.
5 -> 6버전으로 업그레이드되면서 변경점이 참 많은데 아래와 같다.
1. let, const
2. Arrow Functions
화살표 함수를 사용하면 함수 작성 시 좀 더 간편히 작성할 수 있다.
그리고 map, filter, reduce 등 ES6부터 내장된 함수와도 함께 사용 가능하며, 가독성을 좋게 한다.
// ES5
function sayHello(name) {
return '안녕' + name;
}
console.log(sayHello('영희'));
// 출력 => 안녕 영희
// 다음을 사용합니다.
// ES6 화살표 함수
const sayHello = (name) => {
return `안녕 ${name}`;
}
console.log(sayHello('영희')); // 출력 => 안녕 영희
// 또는 화살표를 사용하거나 'return' 키워드를 사용하지 않아도 됩니다
const sayHello = (name) => `안녕 ${name}`;
console.log(sayHello('영희')); // 출력 => 안녕 영희
3. For of
ES6에 추가된 새로운 컬렉션 전용 반복구문이다. for of 구문을 사용하기 위해선 해당 객체가 [Symbol.iterator] 속성을 가지고 있어야한다.(Array, Map, Set, String 등)(직접 명시가능)
=> 이 부분은 4. Symbol에서 추가 설명
// ES5
const arr = [1, 2, 3]
for(let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
// 1, 2, 3
// ES6 For of
const arr = [1, 2, 3]
for(const i of arr) {
console.log(arr[i]);
}
// 1, 2, 3
4. Iterator / Iterable Protocol
이터러블 / 이터레이터 사용 예시
제너레이터 사용 예시
function* generator(i) {
yield i;
yield i + 10;
}
const gen = generator(10);
console.log(gen.next().value);
// 10
console.log(gen.next().value);
// 20
Reference