구조 분해 할당

TIL

구조 분해 할당은 배열이나 객체의 요소 및 프로퍼티들을 분해해 그 값들을 각각의 변수에 할당하는 자바스크립트의 표현식이다.

배열

배열의 구조분해는 인덱스를 이용해 인덱스의 순서대로 변수의 값을 할당한다.

let colors = ["green", "blue", "purple"];

let [c1, c2, c3] = colors;

console.log(c1); // green
console.log(c2); // blue
console.log(c3); // purple

선언 분리 할당

변수를 먼저 선언하고 나중에 구조 분해 할당으로 값을 할당할 수 있다.

let c1, c2, c3;

[c1, c2, c3] = ["green", "blue", "purple"];

console.log(c1); // green
console.log(c2); // blue
console.log(c3); // purple

배열의 길이보다 더 적은 수의 변수에 값을 할당했을 때

남는 요소는 무시 된다.

let c1, c2;

[c1, c2] = ["green", "blue", "purple"];

console.log(c1); // green
console.log(c2); // blue

 

배열의 길이보다 더 많은 수의 변수에 값을 할당했을 때

값이 없는 변수는 undefined가 된다.

let c1, c2, c3, c4;

[c1, c2, c3, c4] = ["green", "blue", "purple"];

console.log(c1); // green
console.log(c2); // blue
console.log(c3); // purple
console.log(c4); // undefined

 

기본값 설정

let c1, c2, c3, c4;

[c1, c2, c3, c4 = "yellow"] = ["green", "blue", "purple"];

console.log(c1); // green
console.log(c2); // blue
console.log(c3); // purple
console.log(c4); // yellow

 

두 개의 변수값을 서로 바꾸기

let a = 10;
let b = 5;

[a, b] = [b, a];

console.log(a, b); // 5 10

 

객체

객체의 구조분해는 키값을 기준으로 객체를 분해해 변수에 할당한다.

let colors = {
  c1: "green",
  c2: "blue",
  c3: "purple",
};

let {c1, c2, c3} = colors;

console.log(c1); // green
console.log(c2); // blue
console.log(c3); // purple

다른 변수명 사용하기

객체의 키 이름과 다른 변수명을 사용하고 싶다면 :을 사용하면 된다.

let colors = {
  c1: "green",
  c2: "blue",
  c3: "purple",
};

let {c1: color1, c2: color2, c3: color3} = colors;

console.log(color1); // green
console.log(color2); // blue
console.log(color3); // purple

 

배열의 길이보다 더 많은 수의 변수에 값을 할당했을 때

let colors = {
  c1: "green",
  c2: "blue",
  c3: "purple",
};

let {c1, c2, c3, c4} = colors;

console.log(c1); // green
console.log(c2); // blue
console.log(c3); // purple
console.log(c4); // undefined

기본값 설정

let colors = {
  c1: "green",
  c2: "blue",
  c3: "purple",
};

let {c1, c2, c3, c4 = "yellow"} = colors;

console.log(c1); // green
console.log(c2); // blue
console.log(c3); // purple
console.log(c4); // yellow

'TIL' 카테고리의 다른 글

웹페이지를 조작하는 DOM  (0) 2025.10.31
spread와 rest  (0) 2025.10.31
[TS] 타입 추론 및 타입 정의 연습  (0) 2025.10.31
[TS] 타입 추론  (0) 2025.10.31
[TS] 대수 타입  (0) 2025.10.31
'TIL' 카테고리의 다른 글
  • 웹페이지를 조작하는 DOM
  • spread와 rest
  • [TS] 타입 추론 및 타입 정의 연습
  • [TS] 타입 추론
고견
고견
개발 자국 남기기
  • 고견
    개발자국
    고견
  • 전체
    오늘
    어제
    • 분류 전체보기 (157) N
      • Frontend (29)
        • Next.js (16)
        • JavaScript (7)
      • CS (19) N
        • 자료구조 (9)
        • 알고리즘 (5)
        • 운영체제 (4) N
        • 네트워크 (1) N
      • TIL (93)
      • Dev Log (16)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    generic
    App Router
    앱 라우터
    제네릭
    Trouble Shooting
    문자열
    인터페이스
    memory
    C
    클래스
    javascript
    typescript
    cs50
    타입 좁히기
    바닐라 자바스크립트
    함수 타입
    CS
    페이지 라우터
    Pages Router
    useState
    ai 감성 일기장
    자료구조
    react
    Spa
    Next.js
    algorithm
    트러블 슈팅
    알고리즘
    emotion diary
    배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고견
구조 분해 할당
상단으로

티스토리툴바