[JavaScript 심화] 구조 분해 할당

2025. 11. 3. 16:56·React/JavaScript 심화
구조 분해 할당은 배열이나 객체의 값을 손쉽게 변수로 꺼내는 문법임
배열의 인덱스나 객체의 키를 하나씩 접근할 필요 없이,
필요한 값만 직접 변수에 담을 수 있음

1. 배열의 구조 분해 할당

let arr = [1, 2, 3];

let [one, two, three, four /* = 4 */] = arr;
console.log(one, two, three, four); // 1 2 3 undefined(4)

설명

  • 배열의 인덱스에 따라 변수의 값이 할당됨
  • 대응되는 값이 없으면 `undefined`가 됨
  • `=`를 사용해 기본값을 줄 수 있음
let [a, b, c =10] = [1, 2];
console.log(a, b, c); // 1 2 10

2. 객체의 구조 분해 할당

let person = {
  name: "도서",
  age: 28,
  hobby: "게임",
};

let {
  name,
  age, // age: myAge 도 가능!
  hobby,
  extra /* = "hello" */,
} = person;

console.log(name, age, hobby, extra); // 도서 28 게임 undefined (hello)

설명

  • 객체의 key 이름과 동일한 변수명을 지정하면 자동으로 할당됨
  • key 이름을 바꾸고 싶으면 `key: 새이름` 형태로 사용하면됨
  • 없는 key는 `undefined`, 또는 기본값을 줄 수 있음
let { age: myAge, hobby: myHobby = "독서" } = person;
console.log(myAge, myHobby); // 28 "게임"

3. 함수 매개변수에서 구조 분해 사용하기

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

func(person); // 도서 28 게임 undefined

설명

  • 매개변수에서 구조 분해를 바로 사용하면 객체를 통째로 전달받되, 내부 속성만 간편하게 꺼낼 수 있음
  • API응답, `props`, `option` 객체 등에서 자주 쓰임
const showUser = ({ name, age }) => {
  console.log(`${name}(${age})님 안녕하세요!`);
};
showUser({ name: "도서", age: 28 });

 

구문 문법 특징
배열 구조 분해 `[a, b, c] = arr` 순서(index) 기준
객체 구조 분해 `{name, age} = obj` key 이름 기준
기본값 설정 `a = 0` 값이 없을 때 대체 사용
변수명 변경 `age: myAge` key와 변수명을 다르게 지정
함수 매개변수 `({ name, age })` 전달받은 객체 내부 값 바로 추출

 

'React > JavaScript 심화' 카테고리의 다른 글

[JavaScript 심화] 배열 메서드 (요소 조작)  (0) 2025.11.10
[JavaScript 심화] 순회 정리  (0) 2025.11.10
[JavaScript 심화] Spread & Rest  (0) 2025.11.03
[JavaScript 심화] 단락 평가  (0) 2025.11.03
[JavaScript 심화] Truthy & Falsy  (0) 2025.11.03
'React/JavaScript 심화' 카테고리의 다른 글
  • [JavaScript 심화] 순회 정리
  • [JavaScript 심화] Spread & Rest
  • [JavaScript 심화] 단락 평가
  • [JavaScript 심화] Truthy & Falsy
이도서
이도서
  • 이도서
    도서의 코딩노트
    이도서
  • 전체
    오늘
    어제
    • 분류 전체보기 (249)
      • Today I Learned (79)
        • 2024 (78)
      • Swift (25)
        • Swift 문법 정리 (19)
        • RxSwift (5)
      • Swift Study (12)
        • Playground (2)
        • Storyboard (9)
        • UIKit (1)
      • Flutter (27)
        • Dart 언어 (16)
        • Flutter Study (11)
      • React (37)
        • HTML & CSS (8)
        • JavaScript 기본 (12)
        • JavaScript 심화 (14)
        • Node.js (2)
        • React (1)
      • Git (3)
      • 코딩테스트 (60)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 개발 공부 공유 링크
  • 인기 글

  • 태그

    함수
    iOS앱개발
    DART
    내일배움캠프
    function
    Swift
    코딩테스트Level.1
    React
    코딩테스트
    html
    storyboard
    javascript
    객체지향
    ios앱개발자
    Flutter
    ios
    코딩테스트 level.1
    javascript 기본
    CLASS
    Til
  • 최근 댓글

  • 최근 글

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

티스토리툴바