객체의 Destructuring (구조 분해)
2025. 3. 18. 21:07ㆍCoding Study/Javascript
객체는 인덱스 번호가 아니라 property name 으로 여러 값들을 구분
일반 적인 방법으로는 2줄로 변수를 선언
property name 과 변수 명이 동일 하면 Destructuring 문법으로 1줄로 변수 선언 가능.
const carBrand = {
EQE: "Benz",
i7: "BMW",
IONIQ9: "Hyundai",
EquinoxEV: "Chevrolet",
ZOE: "RENAULT",
ModelX: "TESLA",
TaycanEV: "Porsche",
etron: "Audi",
};
// 일반적인 방법으로 객체의 프로퍼티 값으로 대입
//const ModelX = carBrand.i7
//const i7 = carBrand.EQE
// property name 자체를 변수로 활용 할 때 가능.
const { ModelX, i7 } = carBrand;
console.log(ModelX);
console.log(i7);

왼편에 선언된 변수의 이름 과 똑같은 property name 이 있으면 할당되는 방식으로
객체에 없는 값을 할당 받으려고 하면 undefined 출력 됨
const carBrand = {
EQE: "Benz",
i7: "BMW",
IONIQ9: "Hyundai",
EquinoxEV: "Chevrolet",
ZOE: "RENAULT",
ModelX: "TESLA",
TaycanEV: "Porsche",
etron: "Audi",
};
// IONIQ9, EquinoxEV,ZOE, ModelX, TaycanEV, etron
const { ModelX, car } = carBrand;
console.log(ModelX);
console.log(car);

이것을 방지 하기 위해 기본값 할당도 가능
const carBrand = {
EQE: "Benz",
i7: "BMW",
IONIQ9: "Hyundai",
EquinoxEV: "Chevrolet",
ZOE: "RENAULT",
ModelX: "TESLA",
TaycanEV: "Porsche",
etron: "Audi",
};
// IONIQ9, EquinoxEV,ZOE, ModelX, TaycanEV, etron
const { ModelX, car = "차없음" } = carBrand;
console.log(ModelX);
console.log(car);

Rest Parameter 적용
나머지는 객체로 모아서 변수에 담김
const carBrand = {
EQE: "Benz",
i7: "BMW",
IONIQ9: "Hyundai",
EquinoxEV: "Chevrolet",
ZOE: "RENAULT",
ModelX: "TESLA",
TaycanEV: "Porsche",
etron: "Audi",
};
const { ModelX, ...car } = carBrand;
console.log(ModelX);
console.log(car);

property name 과 다르게 변수명을 하고 싶을 대
const carBrand = {
EQE: "Benz",
i7: "BMW",
IONIQ9: "Hyundai",
EquinoxEV: "Chevrolet",
ZOE: "RENAULT",
ModelX: "TESLA",
TaycanEV: "Porsche",
etron: "Audi",
};
const { ModelX: Model3, ...car } = carBrand;
console.log(Model3);
console.log(car);
객체 내부의 property name 이 변수 이름으로 사용 할 수 없는 하이픈이 있는 경우
새로운 변수 이름으로 할당하여 선언 가능.
const carBrand = {
EQE: "Benz",
i7: "BMW",
IONIQ9: "Hyundai",
EquinoxEV: "Chevrolet",
ZOE: "RENAULT",
"Model-X": "TESLA",
TaycanEV: "Porsche",
etron: "Audi",
};
const { TaycanEV, "Model-X": Model_3} = carBrand;
console.log(TaycanEV);
console.log(Model_3);

대괄로를 적용 하여 computed property name 도 활용 가능
const carBrand = {
EQE: "Benz",
i7: "BMW",
IONIQ9: "Hyundai",
EquinoxEV: "Chevrolet",
ZOE: "RENAULT",
ModelX: "TESLA",
TaycanEV: "Porsche",
etron: "Audi",
};
const carName = "etron";
const { TaycanEV, [carName]: product } = carBrand;
console.log(TaycanEV);
console.log(product);'Coding Study > Javascript' 카테고리의 다른 글
| 자바스크립트 var, let, const 키워드 (0) | 2025.04.18 |
|---|---|
| this (0) | 2025.04.05 |
| bind 메서드 (0) | 2025.03.31 |
| 배열의 Destructuring (구조 분해) (0) | 2025.03.18 |
| 3-3. 이벤트 핸들링 (0) | 2025.03.11 |