자바스크립트 Rest 매개변수

자바스크립트는 유연한 언어로, 함수의 매개변수를 처리하는 다양한 방법을 제공합니다. 그 중 하나인 “Rest 매개변수 (Rest parameter)”는 함수에 여러 개의 인수를 전달하는 방법을 간편하게 해줍니다.

Rest 매개변수란?

Rest 매개변수는 함수 정의 시, 나머지 인수들을 배열로 받을 수 있는 문법입니다. 이를 사용하면 함수에 전달되는 모든 인수들을 배열로서 처리할 수 있습니다. Rest 매개변수는 세 개의 점 (…)으로 표시되며, 이는 함수의 매개변수 목록에서 마지막에 위치해야 합니다.

다음은 Rest 매개변수를 사용한 함수 정의의 예시입니다.

function sum(...numbers) {
  let total = 0;
  for (let num of numbers) {
    total += num;
  }
  return total;
}

위의 코드에서 ...numbers는 Rest 매개변수로서, 함수에 전달되는 모든 인수들을 배열 numbers로 받게 됩니다.

Rest 매개변수의 활용

Rest 매개변수는 다양한 상황에서 유용하게 사용될 수 있습니다.

가변 인수 함수

Rest 매개변수를 사용하면 원하는 개수의 인수를 함수에 전달할 수 있습니다. 필요에 따라 매개변수를 조절할 수 있다는 점에서 유연성이 높아집니다.

function findMax(...numbers) {
  let max = numbers[0];
  for (let num of numbers) {
    if (num > max) {
      max = num;
    }
  }
  return max;
}

console.log(findMax(1, 4, 2, 9, 3)); // Output: 9
console.log(findMax(5, 8)); // Output: 8

배열 합치기

Rest 매개변수를 사용하면 배열을 간단하게 합칠 수 있습니다.

const fruits = ['apple', 'orange'];
const vegetables = ['carrot', 'broccoli'];

const combined = [...fruits, ...vegetables];
console.log(combined); // Output: ['apple', 'orange', 'carrot', 'broccoli']

함수 전달

Rest 매개변수를 사용하면 함수에서 다른 함수를 전달하는 경우에도 유용합니다. 이를 통해 가변 인자를 처리하거나 함수의 인수를 자유롭게 변경할 수 있습니다.

function processNumbers(...numbers) {
  return numbers.map(num => num * 2);
}

console.log(processNumbers(1, 2, 3)); // Output: [2, 4, 6]
console.log(processNumbers(4, 5)); // Output: [8, 10]

Rest 매개변수는 자바스크립트의 유연한 매개변수 처리 방법 중 하나입니다. 필요에 따라 가변 인수 함수를 작성하거나 배열을 간단하게 합치는 등 다양한 상황에서 활용할 수 있습니다. 다음 번에는 Rest 매개변수와 함께 활용할 수 있는 Spread 문법 등 다른 자바스크립트 기능들을 알아보도록 하겠습니다.