나머지 매개변수 구문을 사용하면 함수가 정해지지 않은 수의 매개변수를 배열로 받을 수 있다.
함수의 마지막 매개변수 앞에 ...
를 붙이면 모든 후속 매개변수를 배열에 넣는다.
마지막 매개변수만 나머지 매개변수로 설정할 수 있다.
function myFun(a, b, ...manyMoreArgs) {
console.log("a", a);
console.log("b", b);
console.log("manyMoreArgs", manyMoreArgs);
}
myFun("one", "two", "three", "four", "five", "six");
// 콘솔 출력:
// a, one
// b, two
// manyMoreArgs, [three, four, five, six]
함수 정의에는 하나의 ...
만 존재할 수 있다
foo(...one, ...wrong, ...wrong)
나머지 매개변수는 변수가 하나여도 배열
이다.
function myFun(a, b, ...manyMoreArgs) {
console.log("a", a)
console.log("b", b)
console.log("manyMoreArgs", manyMoreArgs)
}
myFun("one", "two", "three")
// a, "one"
// b, "two"
// manyMoreArgs, ["three"] <-- 요소가 하나지만 여전히 배열임
나머지 매개변수에 변수가 없다면 빈배열
이 된다
// 위에 정의한 함수를 그대로 사용
myFun("one", "two")
// a, "one"
// b, "two"
// manyMoreArgs, [] <-- 여전히 배열
배열에서의 rest
// Rest 사용 예) 배열의 경우 1
const a = [1, 2, 3];
const [ one, ...rest ] = a;
console.log(one); // 1
console.log(rest); // [2, 3]
함수의 매개변수가 몇 개가 될지 모르는 상황에서 rest 매개변수를 사용하면 유용하다.
// Rest 사용 예) 함수 파라미터 1
function sum(...rest) {
return rest;
}
const result = sum(1,2,3);
console.log(result); // [1, 2, 3]