[JavaScript - 심화] 구조 분해 할당

2024. 11. 4. 10:13·javascript
이정환 강사님의 인프런 강의, '한 입 크기로 잘라먹는 리액트'의 강의 내용과 사진 자료를 바탕으로 정리한 내용입니다.

구조 분해 할당

구조 분해 할당은 배열의 요소 또는 객체의 속성을 분해하여 각 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식이다.

 

1. 배열의 구조 분해 할당

배열 arr의 요소를 각각 하나의 변수에 담고 싶을 때는 아래처럼 코드를 작성한다.

let arr = [1, 2, 3];

/*
  let one = arr[0];
  let two = arr[1];
  let three = arr[2];
*/
let [one, two, three] = arr; //훨씬 보기 좋음
console.log(one, two, three);

이렇게 코드를 작성하면 one에는 arr[0]의 값인 1이 two에는 arr[1]의 값인 2가, three에는 arr[2]의 값인 3이 할당되게 된다.

let arr = [1, 2, 3];

let [one, two] = arr;
console.log(one, two);

배열의 모든 요소가 필요하지 않다면, 원하는 요소만 추출할 수 있다.

let arr = [1, 2, 3];

let [one, two, three, four = '4'] = arr;
console.log(one, two, three);

배열의 요소보다 더 많은 변수를 선언하는 경우, undefined가 할당된다. 위의 코드처럼 기본값을 줄 수 있다.

 

2. 객체의 구조 분해 할당

객체를 구조 분해 할당하는 방법은 배열과 유사하지만 객체는 중괄호{}를 사용하여 분해한다.

let person = {
  name: '하니',
  age: 24,
  hobby: '그림 그리기',
};

let { name, age, hobby } = person;

객체의 속성 이름과 변수 이름이 일치해야 값이 할당된다. 객체에 존재하지 않는 속성을 가져오려 하는 경우 undefined가 할당된다.

 

3. 객체 구조 분해 할당을 이용해서 함수의 매개변수를 받는 방법

const func = ({ name, age, hobby }) => {
  console.log(name, age, hobby);
};

func(person); // '하니' 24 '그림 그리기'

위 코드에서 func 함수는 person 객체를 매개변수로 받으면서 동시에 name, age, hobby 속성을 추출해 변수로 사용한다.

'javascript' 카테고리의 다른 글

[JavaScript - 심화] 원시타입과 객체타입  (0) 2024.11.05
[JavaScript - 심화] Spread 연산자와 Rest 매개변수  (0) 2024.11.04
[JavaScript - 심화] Truthy와 Falsy  (3) 2024.11.03
'javascript' 카테고리의 다른 글
  • [JavaScript - 심화] 원시타입과 객체타입
  • [JavaScript - 심화] Spread 연산자와 Rest 매개변수
  • [JavaScript - 심화] Truthy와 Falsy
뜐🐸
뜐🐸
패왕색 패기를 갖춘 뜐입니다~
  • 뜐🐸
    뜐의 개발 로그
    뜐🐸
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 기초 학습
        • HTML
        • CSS
        • JavaScript
        • Version Co..
        • 미니 프로젝트
        • DOM & 웹 AP..
      • CSS 프레임워크
        • Bootstrap
      • React
        • 개념 정리
        • 기초 정리
      • 알고리즘
        • Week 1: 입출..
        • 재귀
        • 백트래킹
      • javascript
      • FastAPI
        • 크롤링 서버 만들기
      • 전역 상태 관리
        • Redux
      • 한 입 리액트 챌린..
      • 영어
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    :focus
    백준 #코딩테스트 #1074번 #재귀 #알고리즘 # 알고리즘 문제풀이
    티스토리챌린지
    inline-block
    자바스크립트 #하노이 탑 #재귀 #백준 # 11729
    가상 선택자
    오블완
    :hover
    :nth-child(n)
    :active
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜐🐸
[JavaScript - 심화] 구조 분해 할당
상단으로

티스토리툴바