• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [JavaScript] JavaScript의 구조 분해와 스프레드 연산자
    2024년 12월 26일
    • 유니얼
    • 작성자
    • 2024.12.26.:11
    728x90

    JavaScript는 구조 분해(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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바