Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트(JavaScript) Rest 매개변수란? 개념부터 활용 예제까지

Rest 매개변수(Rest Parameter)란?

ES6(ECMAScript 2015)는 개발자의 작업을 한층 수월하게 만들어 주기 위해 rest 매개변수를 도입했습니다. rest 매개변수는 함수 선언 시 매개변수 이름 앞에 마침표 세 개(...)를 붙여 표기하며, 호출 시 전달되는 정해지지 않은 개수의 인수들을 하나의 배열(Array)로 묶어 받아올 수 있게 해줍니다.

이렇게 생성된 값은 실제 Array 인스턴스이기 때문에 forEach, map, filter, reduce 등 배열 메서드를 그대로 사용할 수 있다는 점이 기존의 arguments 객체와 큰 차이입니다.

Rest 매개변수 사용 예제

다음 코드 예제를 통해 rest 매개변수가 어떻게 동작하는지 살펴보겠습니다. 전달된 모든 숫자를 합산하는 함수를 구현한 것입니다.

<html>
   <body>
      <script>
         function addition(...numbers) {
            var res = 0;
            numbers.forEach(function (number) {
               res += number;
            });
            return res;
         }
         document.write(addition(3)); // 출력: 3
         document.write(addition(5, 6, 7, 8, 9)); // 출력: 35
      </script>
   </body>
</html>

코드 설명

addition 함수는 ...numbers라는 rest 매개변수를 사용하여 호출 시 넘겨받은 모든 인수를 numbers라는 배열로 수집합니다. 첫 번째 호출에서는 인수가 하나뿐이므로 결과로 3이 출력되고, 두 번째 호출에서는 다섯 개의 인수가 배열로 전달되어 각 값을 순회하며 더한 결과인 35가 출력됩니다.

Rest 매개변수 사용 시 주의사항

  • rest 매개변수는 반드시 매개변수 목록의 마지막에 위치해야 합니다.
  • 하나의 함수에는 rest 매개변수를 하나만 선언할 수 있습니다.
  • 일반 매개변수와 함께 사용할 수 있으며, 이 경우 앞선 매개변수들이 먼저 값을 할당받고 나머지 인수가 rest 매개변수 배열에 담깁니다.