나머지 매개변수(Rest Parameters)는 함수에 전달된 인자들 중에서 정의된 매개변수에 할당되지 않은 나머지 모든 인자들을 배열로 모아주는 문법입니다. 나머지 매개변수는 함수 정의 시 매개변수 이름 앞에
...
을 붙여서 사용합니다. 이 기능을 사용하면, 함수가 받을 인자의 개수가 유동적일 때 유용하게 사용할 수 있습니다.function 함수명(...매개변수명) { // 함수 본문 }
function sum(...numbers) {
return numbers.reduce((acc, current) => acc + current, 0);
}
console.log(sum(1, 2, 3, 4)); // 출력: 10
이 예제에서, sum
함수는 몇 개의 숫자가 입력될지 미리 알 수 없으므로 나머지 매개변수 numbers
를 사용하여 모든 입력을 배열로 받습니다. 그 후 reduce
메소드를 사용하여 모든 숫자의 합을 계산합니다. 나머지 매개변수는 함수가 가변적인 수의 인자를 보다 유연하게 처리할 수 있도록 도와줍니다.
"파티 초대장과 게스트 리스트"를 예로 들어봅시다.
당신이 파티를 주최한다고 가정합시다. 하지만 몇 명이 올지, 누가 올지 미리 알 수 없습니다. 이때, 모든 게스트의 이름을 한 번에 받아서 게스트 리스트를 만들어야 한다면 어떻게 할까요?
파티 초대장(함수)을 통해 오는 모든 게스트(인자들)의 이름을 게스트 리스트(...args
)에 적어두려고 합니다. 이렇게 하면, 누가 오든 몇 명이 오든 한 번에 모두를 관리할 수 있는 게스트 리스트(인자 배열)가 만들어집니다.
function partyInvitation(...guests) {
console.log("게스트 리스트:", guests);
}
partyInvitation("앨리스", "밥", "캐롤"); // 게스트 리스트: ['앨리스', '밥', '캐롤']
이 비유를 통해 나머지 매개변수가 가변적인 수의 인자들을 배열로 쉽게 관리할 수 있게 해주는 "게스트 리스트"와 같은 역할을 한다는 것을 기억할 수 있습니다. 파티에서 게스트들을 관리하는 것처럼, 나머지 매개변수를 사용해 함수에서 여러 인자들을 효율적으로 다룰 수 있습니다!