[JS ES6] 함수에서 쓰는 점3개 Rest parameter

gminnimk·2025년 3월 20일

JS ES6

목록 보기
10/31

1️⃣ Rest 파라미터란?

  • 정의: Rest 파라미터는 함수의 매개변수 목록에서 ... 기호를 사용하여 전달된 모든 인자를 배열로 모아줍니다.
  • 문법:
    function 함수명(...파라미터들) {
      // 파라미터들는 배열로 전달된 모든 인자들을 담고 있음
    }
    
  • 예제 1: 모든 인자를 배열로 받기
    function 함수2(...파라미터들) {
      console.log(파라미터들);
    }
    
    함수2(1, 2, 3, 4, 5, 6, 7);
    // 출력: [1, 2, 3, 4, 5, 6, 7]
    
    • 설명:
      호출 시 전달된 모든 인자가 배열 형태로 파라미터들에 담깁니다.

2️⃣ Rest 파라미터와 일반 매개변수의 조합

  • 사용법: Rest 파라미터는 반드시 마지막 매개변수여야 하며, 앞에 일반 매개변수가 올 수 있습니다.
  • 예제 2: 앞에 일반 매개변수가 있는 경우
    function 함수2(a, b, ...파라미터들) {
      console.log(파라미터들);
    }
    
    함수2(1, 2, 3, 4, 5, 6, 7);
    // 출력: [3, 4, 5, 6, 7]
    
    • 설명:
      첫 번째와 두 번째 인자는 각각 ab에 할당되고, 나머지 인자는 배열 파라미터들에 담깁니다.

3️⃣ Rest 파라미터 사용 시 주의사항

  • 항상 마지막 매개변수여야 함: Rest 파라미터는 매개변수 목록의 마지막에 위치해야 하며, 다른 위치에 사용하면 에러가 발생합니다.
    // 잘못된 예: 에러 발생
    function 함수2(a, ...파라미터들, b) {
      console.log(파라미터들);
    }
    
  • 하나만 사용할 수 있음: 함수 내에서 Rest 파라미터는 하나만 사용할 수 있습니다.
    // 잘못된 예: 에러 발생
    function 함수2(a, ...파라미터들, ...파라미터들2) {
      console.log(파라미터들);
    }
    

4️⃣ 실습 예제: 모든 인자 출력하기

문제 상황

  • 목표: 전달받은 모든 인자를 하나씩 콘솔에 출력하는 함수를 작성합니다.
  • 기존 방법 (인자 수가 고정적일 때):
    function 함수(a, b, c) {
      console.log(a);
      console.log(b);
      console.log(c);
    }
    
    함수(1, 2, 3);
    
    • 한계:
      인자 수가 3개로 고정되어 있어, 인자가 4개 이상 들어올 경우에는 제대로 동작하지 않습니다.

Rest 파라미터를 이용한 개선

  • 해결책: Rest 파라미터를 사용하여 인자 수에 제한 없이 처리할 수 있습니다.
  • 예제 3: 반복문을 이용해 모든 인자 출력하기
    function 함수(...rest) {
      for (var i = 0; i < rest.length; i++) {
        console.log(rest[i]);
      }
    }
    
    함수(1, 2, 3, 4, 5, 6, 7, 8);
    
    • 설명:
      전달된 모든 인자가 배열 rest에 담이고, 반복문을 통해 각 인자가 순차적으로 출력됩니다.

5️⃣ Rest 파라미터 기억하기

  • 영단어 "rest":
    'rest'는 "나머지" 또는 "여분"이라는 뜻입니다.Rest 파라미터 = 나머지 매개변수 라고 기억하면 좋습니다.

📌 정리

  • Rest 파라미터는 ES6에서 도입된 기능으로, 함수에 전달된 인자들을 배열로 손쉽게 다룰 수 있게 해줍니다.
  • 일반 매개변수와 혼합하여 사용할 수 있으며, 항상 마지막에 위치해야 합니다.
  • 이를 이용하면 인자의 수에 상관없이 유연한 함수 설계가 가능합니다.

0개의 댓글