Frontend/JavaScript

8. 구조 분해 할당

예린lynn 2024. 7. 15. 00:22
728x90

 

구조 분해 할당이란 객체나 배열 중 필요한 일부를 변수로 분해할 수 있도록 해주는 특별한 문법 구조이다.

 

배열 값 할당

 

한 번에 여러 개의 변수에 값을 할당할 수 있다.

//기본형
 [식별자, 식별자, 식별자, ...] = 배열
 
 //예시1
 let arr = [1,2,3];
 let [num1, num2, num3] = arr;
 
 num1 -> 1
 num2 -> 2
 
 //예시2
 let [a,b] = [1,2]
 console.log(a,b) -> 1,2

 

 

값 교체

let a=1;
let b=2;

//[변환시킬 변수] = [변환할 변수 값]
[a,b] = [b,a];

a -> 2
b -> 1

 

 

객체 값 할당

 

객체 내부에 있는 속성을 꺼내서 변수를 할당한다.

 

- 배열

//기본형
{속성 이름, 속성 이름 } = 객체
{식별자=속성 이름, 식별자=속성 이름} = 객체

//예시
let obj = {
  key1 : '가',
  key2 : '나'
};

let {
  key1 : newName,
  key2
} = obj;

 

- 객체

let user = {
 name : "lynn",
 age : 23,
 hobby : "golf"
};

let {hobby} = user;

console.log(hobby); -> golf

 

쉼표 분해

 

배열에서 필요하지 않은 요소가 있으면, 쉼표를 사용해서 버릴 수 있다.

//배열 요소인 'apple' 버리기
let user = ["lynn", 'apple', 23];

let [name, , age] = user;

console.log(name);
console.log(age)l

 

 

기본값 할당 분해

 

변수에 값이 할당되지 못하는 상황을 방지하기 위해, 기본값(default value)을 설정한다.

let [a=3, b=4, c=5] = [1,2];
console.log(a); -> 1
console.log(b); -> 2
console.log(c); -> 5

 

 

매개변수 ' ... '

 

매개변수 '...'을 이용하여 복사한 두 배열은 완전히 독립적으로 작동한다.

 

- 배열

//기본형
 [...배열]
 [...배열, 자료, 자료, 자료]
 
 //예시1
 const a = [1,2]
 const b = [...a]
 b.push(3)
 b.push(4)
 
 conosle.log(b) -> [1,2,3,4]
 
 //예시2
 const a = [1,2]
 const b = [3, ...a, 4]
 
 console.log(b) -> [3,1,2,4]

 

- 객체

//기본형
{...객체}
{...객체, 자료, 자료, 자료}

//예시
const a = {
  이름 : 'lynn',
  나이 : 23,
  성별: 여자
}

const b = {...a}
b.이름 = '예린'
b.나이 = 21

console.log(JSON.stringify(b)) -> {"이름":"예린","나이":21,"성별":"여자"}
728x90