자바스크립트는 유연한 언어로, 함수의 매개변수를 처리하는 다양한 방법을 제공합니다. 그 중 하나인 “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 문법 등 다른 자바스크립트 기능들을 알아보도록 하겠습니다.