ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JS] 구조분해할당
    Development/Javascript 2021. 10. 12. 09:04

    구조분해할당 또는 비구조화할당 이라고 합니다.

    아래 MDN 문서를 참고해주세요.

    https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

     

    구조 분해 할당 - JavaScript | MDN

    구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식입니다.

    developer.mozilla.org

    구조분해할당은 객체 또는 배열의 속성을 변수에 담을 수 있는 표현식입니다.

     

    객체로 사용해보겠습니다.

    const user = {
      id: 'hyemin',
      nickname:'혜민',
      age: 31,
      email: 'hyemin@test.test'
    }
    
    const {id, nickname, age, email} = user; 
    console.log(`아이디는 ${id}의 닉네임은 ${nickname}이고 나이는 ${age}입니다. 이메일주소는 ${email}`);
    // output -> 아이디는 hyemin의 닉네임은 혜민이고 나이는 31입니다. 이메일주소는 hyemin@test.test

     

    만약 email 값이 없다면 어떻게 될까요?

    const user = {
      id: 'hyemin',
      nickname:'혜민',
      age: 31
    }
    
    const {id, nickname, age, email} = user; 
    console.log(`아이디는 ${id}의 닉네임은 ${nickname}이고 나이는 ${age}입니다. 이메일주소는 ${email}`);
    // output -> 아이디는 hyemin의 닉네임은 혜민이고 나이는 31입니다. 이메일주소는 undefined

    위와 같이 undefined로 뜹니다. 이 부분을 해결하기 위해 기본값을 지정해줄 수 있습니다.

    const user = {
      id: 'hyemin',
      nickname:'혜민',
      age: 31
    }
    
    const {id, nickname, age, email = test} = user; 
    console.log(`아이디는 ${id}의 닉네임은 ${nickname}이고 나이는 ${age}입니다. 이메일주소는 ${email}`);
    // output -> 아이디는 hyemin의 닉네임은 혜민이고 나이는 31입니다. 이메일주소는 test

     

     

    또한 변수명을 변경해줄 수 있습니다.

    변수명 id를 변경해보겠습니다.

    const user = {
      id: 'hyemin',
      nickname:'혜민',
      age: 31
    }
    
    const {id:userId, nickname, age, email = test} = user; 
    console.log(`아이디는 ${userId}의 닉네임은 ${nickname}이고 나이는 ${age}입니다. 이메일주소는 ${email}`);
    // output -> 아이디는 hyemin의 닉네임은 혜민이고 나이는 31입니다. 이메일주소는 test

     

     

    이번에는 배열로 사용해보겠습니다.

    const alphabet = ['A','B','C']; 
    const [a,b,c,d] = alphabet;
    console.log(a,b,c,d);
    // output -> A B C undefined

    배열은 순서대로 출력됩니다. d 값에 해당하는 배열의 자릿수에는 값이 없기 때문에 undefined로 출력됩니다.

     

    그리고 배열에서 해당하는 값 만 가지고 오고 싶을때는 배열의 자릿수대로 , 로 구분하여 가져올 수 있습니다.

    B 값만 출력해보겠습니다.

    const alphabet = ['A','B','C']; 
    const [,b] = alphabet;
    console.log(b);
    // output -> B

    C 값만 출력한다면 아래와 같이 코드를 작성하면 됩니다.

    const alphabet = ['A','B','C']; 
    const [,,c] = alphabet;
    console.log(c);
    // output -> C

     

    반응형

    'Development > Javascript' 카테고리의 다른 글

    [JS] Object.assign  (0) 2021.10.08
    [JS] filter  (0) 2021.10.06
    [JS] map, forEach  (0) 2021.10.05

    댓글

Designed by Tistory.