ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ES6+ | Destructuring 구조 분해 할당 & 객체 확장 표현식
    JavaScript/ES6+ 2020. 3. 6. 16:57

    Destructuring 구조 분해 할당 & 객체 확장 표현식


    객체 확장 표현식

    ES6에 도입되었으며 객체 내부에서 표현식을 사용하거나
    보다 편리하게 키와 키값을 저장할 수 있도록 하는 문법

    • 객체의 키에 저장할 값을 가진 변수와 키의 이름이 동일한 경우 키 이름만 작성 가능
    • 객체 생성 블록 안에 대괄호[]를 사용하여 표현식 작성 가능
    • 함수 선언 시 function 키워드 생략 가능
    const x = 0;
    const y = 0;
    const obj = {x, y};
    console.log(obj); // {x: 0, y: 0}
    
    const randomKey = 'other';
    const comObj = {
        ['the' + randomKey]: 'hello?'
    }
    console.log(comObj); // {theother: "hello?"}
    
    const funcObj = {
        x,
        A(){console.log('A');},
        B(){return 0;}
    }
    funcObj.A(); // A
    console.log(funcObj.B()); // 0

    Destructuring 구조 분해 할당

    배열이나 객체의 속성을 해체하여
    그 값을 개별 변수에 담을 수 있게 하는 ES6 표현식

    • 배열에서 값을 추출할 때는 인덱스 순서에 맞게 변수 작성
    • 변수에 =(할당 연산자)를 사용해서 기본값 기정 가능
    • 객체에서 값을 추출할 때는 키의 이름과 동일한 변수 이름 사용
    • 객체에서 값을 추출할 때 변수에 :(콜론) 을 사용하면 새로운 변수 이름으로 키값을 추출할 수 있음
    // 배열
    const arr1 = [0, 1];
    let [one, two, three='empty'] = arr1;
    console.log(three);    // empty
    
    console.log(one, two); // 0 1
    [one, two] = [two, one];
    console.log(one, two); // 1 0
    
    // 객체
    const obj = {
        key1: 1,
        key2: 2
    }
    const { key1, key2:_ } = obj;
    console.log(key1); // 1
    console.log(_); // 2

    리액트에서도 자주 사용되는 ES6의 구조 분해 할당과 객체 확장 표현식에 대해 알아보았습니다.

    구조 분해 할당을 사용하면 객체나 배열에서 요소를 추출할 때 각각의 값에 직접 접근하지 않아도 됩니다.

    또한 객체 구조 분해 할당의 경우 변수명을 다르게 지정할 수도 있기 때문에 유용할 것으로 보입니다.

    객체 확장 표현식에서 키와 동일한 이름의 변수를 키 이름만으로 키 값에 저장 가능한 것과

    대괄호를 사용해서 표현식을 사용할 수 있는 것에 대해서 알아두면 좋을 것 같습니다.

    'JavaScript > ES6+' 카테고리의 다른 글

    ES6+ | Generator 제너레이터  (0) 2020.05.13
    ES6+ | Promise  (0) 2020.04.07
    ES6+ | Spread Operator 전개 연산자  (0) 2020.03.06
    ES6+ | Template Literal 템플릿 문자열  (0) 2020.03.06
    ES6+ | let & const  (0) 2020.03.04

    댓글

Designed by Tistory.