-
[JavaScript] JavaScript의 구조 분해와 스프레드 연산자2024년 12월 26일
- 유니얼
-
작성자
-
2024.12.26.:11
728x90JavaScript는 구조 분해(Destructuring)와 스프레드 연산자(Spread Operator)를 통해 데이터를 보다 효율적으로 다룰 수 있습니다. 이 문서에서는 이 두 가지 기능의 개념과 활용 방법을 설명합니다.
1. 구조 분해 할당(Destructuring)
구조 분해 할당은 배열이나 객체의 값을 쉽게 추출하여 변수에 할당하는 문법입니다.
1-1. 배열 구조 분해
배열의 값을 원하는 변수에 간단히 할당할 수 있습니다.
const arr = [1, 2, 3]; const [x, y, z] = arr; console.log(x, y, z); // 1, 2, 3
특정 값 건너뛰기
const arr = [1, 2, 3]; const [first, , third] = arr; console.log(first, third); // 1, 3
중첩 배열 구조 분해
const nested = [2, 4, [5, 6]]; const [i, , [j, k]] = nested; console.log(i, j, k); // 2, 5, 6
1-2. 객체 구조 분해
객체의 속성을 변수로 추출할 수 있습니다.
const restaurant = { name: 'Super Pizza', location: 'Rome, Italy', opening: { mon: { open: 11, close: 22 }, tue: { open: 10, close: 23 } } }; const { name, location } = restaurant; console.log(name, location); // Super Pizza, Rome, Italy
중첩된 객체 구조 분해
const { mon: { open, close } } = restaurant.opening; console.log(open, close); // 11, 22
기본값 설정
const { fri = { open: 9, close: 18 } } = restaurant.opening; console.log(fri); // { open: 9, close: 18 }
2. 스프레드 연산자(Spread Operator)
스프레드 연산자는 배열이나 객체의 요소를 펼치거나 복사하는 데 사용됩니다.
2-1. 배열에서의 스프레드 연산자
배열의 요소를 펼쳐 새로운 배열을 생성하거나 복사할 수 있습니다.
const arr = [1, 2, 3]; const newArray = [5, 6, ...arr]; console.log(newArray); // [5, 6, 1, 2, 3]
문자열 펼치기
const str = 'Owen'; console.log([...str]); // ['O', 'w', 'e', 'n']
2-2. 객체에서의 스프레드 연산자
객체의 속성을 펼치거나 복사할 수 있습니다.
const restaurantDetails = { name: 'Super Pizza', location: 'Rome, Italy' }; const extendedDetails = { ...restaurantDetails, rating: 4.5 }; console.log(extendedDetails); // { name: 'Super Pizza', location: 'Rome, Italy', rating: 4.5 }
3. 나머지 매개변수(Rest Parameter)
나머지 매개변수는 함수 호출 시 전달된 나머지 인자들을 배열로 수집합니다.
예제
const add = function (...numbers) { let sum = 0; for (let i = 0; i < numbers.length; i++) { sum += numbers[i]; } return sum; }; console.log(add(2, 3)); // 5 console.log(add(2, 3, 4, 5)); // 14
배열 및 객체의 나머지 매개변수 활용
const [a, b, ...others] = [1, 2, 3, 4, 5]; console.log(others); // [3, 4, 5] const { mon, ...weekdays } = restaurant.opening; console.log(weekdays); // { tue: { open: 10, close: 23 } }
4. 구조 분해와 스프레드 연산자 활용 예제
배열 구조 분해와 스프레드 연산자
const restaurant = { name: 'Super Pizza', location: 'Rome, Italy', opening: { mon: { open: 11, close: 22 }, tue: { open: 10, close: 23 } } }; const [Pizza, , Risotto, ...otherFoods] = [...restaurant.mainMenu, ...restaurant.startMenus]; console.log(Pizza); // Pizza console.log(Risotto); // Risotto console.log(otherFoods); // ['Focaccia', 'Bruschetta', 'Garlic Bread']
객체 구조 분해와 스프레드 연산자
const restaurant = { name: 'Super Pizza', location: 'Rome, Italy', opening: { mon: { open: 11, close: 22 }, tue: { open: 10, close: 23 } } }; const { name, ...otherDetails } = restaurant; console.log(name); // Super Pizza console.log(otherDetails); // { location: 'Rome, Italy', opening: { ... } }
5. 요약
기능 설명 예시 구조 분해 배열/객체 데이터를 변수로 간단히 추출. const { a } = obj; / const [x] = arr; 스프레드 연산자 배열/객체 요소를 펼치거나 복사. [...arr] / { ...obj } 나머지 매개변수 함수 호출 시 전달된 나머지 인자를 배열로 수집. function(...args) {} 구조 분해와 스프레드 연산자는 JavaScript에서 데이터를 더 간결하고 직관적으로 다룰 수 있게 합니다. 이 두 가지 기능을 숙달하면 코드 가독성과 효율성이 크게 향상될 것입니다.
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)