나머지 매개변수(rest parameter)를 사용하면 함수에 전달되는 여러 개의 인수를 하나의 배열로 표현할 수 있습니다. 이 기능은 ES6(ECMAScript 2015)에서 개발자의 작업 편의성을 높이기 위해 도입되었으며, 세 개의 점(...)을 매개변수 이름 앞에 붙여 선언합니다.
나머지 매개변수의 주요 특징
- 함수에 전달된 나머지 인수들을 자동으로 하나의 배열로 모아 줍니다.
- 전통적인
arguments객체와 달리 실제 배열이므로forEach,map,filter,reduce같은 배열 메서드를 바로 사용할 수 있습니다. - 나머지 매개변수는 반드시 매개변수 목록의 마지막에 위치해야 합니다.
사용 예제
다음 코드 예제를 통해 나머지 매개변수를 정의하고 활용하는 방법을 살펴보겠습니다.
<html>
<body>
<script>
function addition(…numbers) {
var res = 0;
numbers.forEach(function (number) {
res += number;
});
return res;
}
document.write(addition(3));
document.write(addition(9,10,11,12,13));
</script>
</body>
</html>코드 설명
위 예제에서 addition(...numbers) 함수는 전달받은 모든 인수를 numbers라는 배열로 수집합니다. 첫 번째 호출인 addition(3)은 인수가 하나뿐이므로 3을 출력하고, 두 번째 호출인 addition(9,10,11,12,13)은 다섯 개의 인수를 모두 더한 55를 출력합니다. 이처럼 나머지 매개변수를 활용하면 인수의 개수와 관계없이 유연하게 동작하는 함수를 손쉽게 작성할 수 있습니다.