<aside> 🍦 ES6는 ECMAScript 2015를 의미합니다.
</aside>
목차
Default parameter and Template Literal
let과 const
let과 const는 같은 이름으로 재선언 할 수 없다.
const는 한 번 할당한 값을 변경할 수 없지만, 객체와 배열로 선언했을 경우에는 객체의 속성과 배열의 요소를 변경할 수 있다.
const b = {
num: 10,
text: 'hi'
};
console.log(b.num); // 10
b.num = 20;
console.log(b.num); // 20
let과 const의 유효범위는 {} 블록 안으로 제한된다.
var a = 10;
for (let a = 0; a < 5; a++) {
console.log(a); // 0 1 2 3 4 5
}
console.log(a); // 10
화살표 함수(arrow function)
함수 선언과 표현에 자유도를 높일 수 있도록 화살표를 이용한다.
function
키워드가 필요 없고, 인자가 하나인 경우에는 괄호 및 리턴을 굳이 해주지 않아도 된다.
// 기본적인 함수 표현식
const adder = function(x) {
return function(y) {
return x + y
}
}
adder(5)(7) // 12
// 화살표 함수로 단순해진 표현식
const adder = x => y => x + y
call, apply, bind 메소드를 사용할 수 없다. → 특정한 this를 따로 가지지 않고, 화살표 함수를 감싸고 있는 스코프의 실행 컨택스트에 의해 결정된다.
let foo = {
bar: function() {
// 메소드 호출시 this === foo
const arrowfn = () => {
console.log(this)
// arrowfn을 감싸고 있는 함수 스코프의 실행 컨텍스트에 의해 결정됩니다
}
arrowfn()
}
}
foo.bar() // -> bar 객체 콘솔에 찍힌다.
향상된 객체 정의 방식 (Enhanced Object Literal)