ES6 정리

http://es6-features.org/ 한국어로 다시 정리한 내용입니다.

Constants (상수)

새 콘텐츠를 다시 할당 할 수 없는 변수

주의 : 할당 된 내용이 아닌 변수 자체만 변경할 수 없습니다 (예를 들어 내용이 객체 인 경우 객체 자체가 여전히 변경 될 수 있음을 의미합니다).

const MY_OBJECT = {'key': 'value'};

// 객체 변수 MY_OBJECT를 다시 재할당(overwrite) 하는 것은 에러를 만듭니다.

MY_OBJECT = {'OTHER_KEY': 'value'}; // Uncaught TypeError: Assignment to constant variable.

// 하지만 객체의 keys는 overwrite 될 수 있습니다.
// 다음은 에러없이 잘 작동합니다.
MY_OBJECT.key = 'otherValue'; 
// 객체의 내용의 변경조차 막기 위해서는 Object.freeze()를 사용하면 됩니다

// const로 선언한 배열도 마찬가지로 push를 사용해 내부를 변경할 수 있습니다.
const MY_ARRAY = [];
MY_ARRAY.push('A'); // ["A"]
// 하지만 배열 변수 MY_ARRAY에 새로운 배열을 할당하는 것은 에러를 만듭니다.

MY_ARRAY = ['B']; // Uncaught TypeError: Assignment to constant variable.

Scoping (범위)

Block-Scoped Variables , function

호이스팅이 없는 블록 범위 변수, 함수

for (let i = 0; i < a.length; i++) {
    let x = a[i]
}

Extended Parameter Handling

Default Parameter Values

디폴트 파라미터 값을 지정할 수 있습니다.

function f (x, y = 7, z = 42) {
    return x + y + z
}

Rest Parameter

나머지 arguments를 하나의 파라미터로 넘겨줄 수 있습니다

function f (x, y, ...a) {
    return (x + y) * a.length
}
f(1, 2, "hello", true, 7) === 9

Spread Operator

배열이나 문자열 같은 반복가능한 요소들을 펼칠 수(spreading) 있습니다

var params = [ "hello", true, 7 ]
var other = [ 1, 2, ...params ] // [ 1, 2, "hello", true, 7 ]

var str = "foo"
var chars = [ ...str ] // [ "f", "o", "o" ]

Extended Literals

Binary & Octal Literal

0b 2진법
0o 8진법을 표시할 수 있습니다

0b111110111 === 503
0o767 === 503

....계속

좋은 웹페이지 즐겨찾기