오픈 소스 코드를 분석하던 도중, 신기한 코드를 발견했습니다.
const { id, name, password, age, address } = state.info
보통 변수 = 값으로 변수를 선언하는 데, 이 코드는 변수명이 여러 개가 존재하고, 값은 하나로 되어 있더군요.
이러한 문법을 구조 분해 할당이라고 합니다. 이 문법이 무엇인지 알아보아요!
1. 구조 분해 할당 (Destructuring assignment)
구조 분해 할당이란? 배열 or 객체의 속성을 쉽게 수출하여 변수에 할당하는 JavaScript 문법입니다.
이를 통해 코드를 간결하고 직관적으로 작성할 수 있어요.
2. 배열에서의 구조 분해 할당
배열에서 구조 분해 할당을 사용하면 배열의 요소들을 각각 변수로 쉽게 할당할 수 있어요.
example1.js
const arr = [1, 2, 3];
const [a, b, c] = arr;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
3. 객체에서의 구조 분해 할당
객체에서는 속성의 이름을 기준으로 값을 변수에 할당합니다.
example2.js
const obj = {
name: 'Lee',
age: 25
}
const { name, age } = obj;
console.log(name); // Lee
console.log(age); // 25
4. 기본값 설정
구조 분해 할당을 사용할 때 undefined일 경우, 기본값을 설정할 수 있어요.
example3.js
const [a = 1, b = 2] = [undefined, 3];
console.log(a); // 1
console.log(b); // 3
5. 중첩된 객체의 구조 분해
객체가 중첩된 경우에도 구조 분해 할당을 사용할 수 있습니다.
example4.js
const user = {
name: 'Kim',
address: {
city: 'Seoul',
zip: '12345'
}
};
const { name, address: { city, zip } } = user;
console.log(name); // Kim
console.log(city); // Seoul
console.log(zip); // 12345
6. 나머지 요소 가져오기 (Rest syntax)
배열 or 객체에서 일부만 분해하고 나머지를 별도의 변수에 할당할 수도 있어요.
example5.js
const [first, ...rest] = [10, 20, 30, 40];
console.log(first); // 10
console.log(rest); // [20, 30, 40]
const { name, ...otherInfo } = { name: 'Park', age: 30, job: 'Developer' };
console.log(name); // Park
console.log(otherInfo); // { age: 30, job: 'Developer' }
7. 정리하며
지금까지 구조 분해 할당에 대해 알아보았습니다.
복잡한 객체 or 배열에서 원하는 값만 추출하고 싶을 때, 이를 활용하면 좋을 것 같아요.
참고
'Front-End Study > JavaScript' 카테고리의 다른 글
URL 파라미터 가져오기 (0) | 2024.10.28 |
---|---|
함수 선언문(Function Declaration)과 함수 표현식(Function Expression) (1) | 2024.10.22 |
엑셀 다운로드 기능 구현하기 (1) | 2024.10.07 |
즉시 실행 함수(IIFE) (0) | 2024.09.19 |
D3 (0) | 2024.08.14 |