구조분해 할당은 JavaScript의 ES6 문법 중 하나로, 객체나 배열의 값을 변수에 손쉽게 추출할 수 있도록 도와주는 문법이다.
배열의 각 요소를 변수로 쉽게 꺼낼 수 있다.
const arr = [1, 2, 3];
const [a, b, c] = arr;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
사용 시 주의: 배열 순서가 중요하다.
const [x, y = 100] = [10];
console.log(x); // 10
console.log(y); // 100 (undefined를 기본값으로 대체)
객체의 프로퍼티를 변수에 바로 할당할 수 있다.
const user = { name: "John", age: 30 };
const { name, age } = user;
console.log(name); // "John"
console.log(age); // 30
const { name: userName } = user;
console.log(userName); // "John"
const { gender = "unknown" } = user;
console.log(gender); // "unknown"
React에서 흔히 사용되는 패턴이다.
function greet({ name, age }) {
console.log(`Hello, ${name}. You are ${age} years old.`);
}
const user = { name: "Alice", age: 25 };
greet(user); // Hello, Alice. You are 25 years old.
function sum([a, b]) {
return a + b;
}
console.log(sum([5, 10])); // 15
객체 안의 객체 또는 배열까지 한 번에 구조분해 가능하다.
const user = {
name: "Tom",
address: {
city: "Seoul",
zip: "12345"
}
};
const {
address: { city, zip }
} = user;
console.log(city); // "Seoul"
console.log(zip); // "12345"
구조분해 할당은 코드 가독성을 높이고 변수 선언을 간결하게 만드는 데 큰 도움이 된다.