
자바스크립트의 디스트럭처링 할당을 잘 사용하면 코드가 간결해지고 가독성이 높아지는 효과를 느낄 수 있기 때문에 이번 포스팅에서 자세히 정리하고 넘어가보자.
객체 또는 배열의 값을 쉽게 분해하여 변수에 할당할 수 있도록 해주는 문법
const numbers = [1, 2, 3];
const [a, b, c] = numbers;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
const numbers = [1];
const [a, b = 2, c = 3] = numbers;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
...)를 사용하면 배열의 일부를 별도로 변수에 할당하고 나머지 요소를 하나의 변수에 묶어서 할당할 수 있다.const numbers = [1, 2, 3, 4, 5];
const [a, b, ...rest] = numbers;
console.log(a); // 1
console.log(b); // 2
console.log(rest); // [3, 4, 5]
const person = { name: 'Sean', age: 25 };
const { name, age } = person;
console.log(name); // 'Sean'
console.log(age); // 25
const person = { name: 'Sean' };
const { name, age = 25 } = person;
console.log(name); // 'Sean'
console.log(age); // 25
...)를 사용하여 특정 프로퍼티만 추출하고 나머지 프로퍼티를 별도의 객체에 할당할 수 있다.const person = { name: 'Sean', age: 25, job: 'FE Developer' };
const { name, ...rest } = person;
console.log(name); // 'Sean'
console.log(rest); // { age: 25, job: 'FE Developer' }
const person = { name: 'Sean', age: 25 };
const { name: personName, age: personAge } = person;
console.log(personName); // 'Sean'
console.log(personAge); // 25
const person = { name: 'Sean', address: { city: 'Seoul', zip: 12345 } };
const { name, address: { city, zip } } = person;
console.log(name); // 'Sean'
console.log(city); // 'Seoul'
console.log(zip); // 12345
function introduce({ name, age }) {
console.log(`My name is ${name} and I am ${age} years old.`);
}
const person = { name: 'Sean', age: 25 };
introduce(person); // My name is Sean and I am 25 years old.
function sum([a, b]) {
return a + b;
}
const numbers = [1, 2];
console.log(sum(numbers)); // 3
서버로부터 받아온 데이터에서 필요한 값만 추출할 수 있다.
const response = {
status: 200,
data: {
user: {
id: 1,
name: 'Sean',
email: 'sean@example.com',
},
},
};
const { data: { user: { name, email } } } = response;
console.log(name); // 'Sean'
console.log(email); // 'sean@example.com'