모아보는 ES6
1. block scope
기존의 함수에 의한 스코프처럼 { }으로 감싼 내부에 별도의 스코프가 생성된다.
{
let a = 10;
{
let a = 20;
console.log(a); // (1)
}
console.log(a); // (2)
}
console.log(a); // (3)let sum = 0;
for (let j = 1; j <= 10; j++) {
sum += j;
}
console.log(sum); // (1)
console.log(j); // (2)if (Math.random() < 0.5) {
let j = 0;
console.log(j); // (1)
} else {
let j = 1;
console.log(j); // (2)
}
console.log(j); // (3)2. block scoped variables
let은 기존의 var를 대체하는 블락변수이고, const는 그 중 한 번 선언 및 정의되고 나면 값을 변경할 수 없는 변수이다. 블락 스코프 내부에서 선언된 let, const는 해당 스코프 내에서만 존재하며, 이들에 대해서는 'TDZ'가 존재한다.
TDZ (temporal dead zone, 임시사각지대): 블락 스코프 내에서는 지역변수/상수에 대한 호이스팅이 이뤄지기는 하나, 선언된 위치 이전까지는 해당 변수/상수를 인식하지 못한다.
3. arrow function
순수 함수로서의 기능만을 담당하기 위해 간소화한 함수. =>의 좌측엔 매개변수, 우측엔 return될 내용을 기입한다. 우측이 여러줄로 이루어져있다면 { }로 묶을 수 있으며, 이 경우엔 명시적으로 return을 기술하지 않으면 undefined가 반환된다.
4. rest parameter
함수 파라미터에 일정하지 않은 값들을 넘기고자 할 경우에 유용.
arguments의 대체.
배열의 얕은복사 목적으로 활용 가능.
5. spread operator
문자열의 각 단어, 배열의 요소들이나 객체의 프로퍼티들을 해체하여 여러개의 값으로 반환해준다.
6. default parameter
파라미터에 값을 할당하지 않거나 빈 값인 상태로 함수를 호출할 경우, 해당 파라미터를 지정한 기본값으로 인식하도록 해줌. 각 파라미터는 내부에서 let과 동일하게 동작하며, 따라서 TDZ가 존재한다.
7. Enhanced Object Literal
7-1. property Shorthand
프로퍼티의 키와 값에 할당한 변수명이 동일한 경우, 키를 생략할 수 있다.
7-2. method Shorthand
메서드명 뒤의 : function 키워드를 생략할 수 있게 되었다.
7-3. Object.assign (ES6)
Object.assign (ES6)Object.assign() 객체의 복사를 수행한다.
8. Destructuring Assignment
배열 혹은 객체를 해체하여 각각 변수에 할당한다.
1) 배열
2) 객체
9. template literals
여러줄 문자열, 보간(표현식 삽입) 등을 지원하는 새로운 형태의 문자열.
10. class
Java의 그것과 비슷하지만 private 메서드가 없다.
Last updated