loading
본문 바로가기
Language/JavaScript

[JS] 07. 구조 분해 할당, 선택적 체이닝

by NeuLyeo 2024. 10. 17.

[JS] 07. 구조 분해 할당, 선택적 체이닝

 

 

 

 

📚 Table of Contents

     

     

     

     

    01. 구조 분해 할당

    구조 분해 할당은 배열이나 객체의 요소를 변수에 쉽게 할당할 수 있는 방법입니다.

    배열 구조 분해 할당

    배열의 요소를 변수에 할당할 때, 다음과 같이 작성할 수 있습니다.

    const arr = [1, 2, 3, 4, 5]
    
    //const a = arr[0]
    //const b = arr[1]
    //const c = arr[2]
    
    let a, b, c, rest
    ;[, b, c, ...rest] = arr 
    // 사용하지 않는 데이터는 쉼표로 구분
    
    console.log(b, c) // 2 3
    console.log(rest) // [4, 5]



    객체 구조 분해 할당

    객체의 속성을 변수에 할당할 때, 다음과 같이 작성할 수 있습니다.

    const obj = {
        a: 1,
        b: 2,
        c: 3,
        x: 7
      }
    
      //const a = obj.a
      //const b = obj.b
      //const c = obj.c
    
    const {x, b:y, ten = 10, ...rest} = obj
    
    console.log(x, y, ten, rest) // 7 2 10 {a: 1, c: 3}




    02. 선택적 체이닝

    선택적 체이닝은 undefined나 null이 될 수 있는 객체의 프로퍼티에 접근할 때 사용합니다. 이를 통해 null 또는 undefined가 반환되는 것을 방지할 수 있습니다.

     

    예를 들어, 다음과 같은 코드가 있습니다.

    const userA = {
      name: 'neo',
      age: 30,
      address: {
        country: 'Korea',
        city: 'seoul'
      }
    }
    
    const userB = {
      name: 'Java',
      age: 22,
    }
    
    function getCity(user) {
      // return user.address.city -> userB 오류 발생
      return user.address?.city || '주소 없음' 
    }
    
    console.log(getCity(userA)) // seoul
    console.log(getCity(userB)) // 주소 없음

     

    위 코드에서 선택적 체이닝을 사용하여 user.address가 undefined인 경우, "주소 없음"을 반환합니다.

     

    구조 분해 할당과 선택적 체이닝은 코드의 가독성을 높이고, 오류를 줄이는 데 큰 도움이 됩니다. 특히, 선택적 체이닝은 깊은 객체 구조에서 안전하게 프로퍼티에 접근할 수 있게 해주어, 코드의 안정성을 높입니다.

    'Language > JavaScript' 카테고리의 다른 글

    [JS] 09. 함수  (1) 2024.10.21
    [JS] 08. 조건문, 반복문  (1) 2024.10.18
    [JS] 06. 연산자  (1) 2024.10.15
    [Js] 05. 데이터 etc  (0) 2024.10.14
    [JS] 04. 참조형 데이터  (0) 2024.10.11