Rest 파라미터는 말 그대로 Rest의 역할을 하는 함수 파라미터이다. ES6 에서 처음 도입된 것으로, 함수의 파라미터에 쓰여서 뒤에 남는 요소들을 배열로 받아 준다.
function test(a, b, ...rest){ // Rest 파라미터 (...rest)
console.log(a, b); // 1 2
console.log(rest); // [3, 4, 5]
}
test(1, 2, 3, 4, 5);
a에 1, b에 2가 할당되고,
나머지 3, 4, 5 는 ...rest가 받아서 배열로 나타내준다.
전달해야 하는 파라미터의 수가 많아졌을 경우 유용하게 사용할 수 있다.
useState를 통해 배열의 상태를 관리할 때 새로운 값을 추가하려면 기존의 모든 항목에 새로운 값을 더하여 반영시키는 방식을 사용한다. 이때 기존의 값들을 위와 같은 방법으로 처리할 수 있다.
Rest 파라미터는 대응시키고 남은 인수들을 배열로 만들어 주기 때문에, 아래와 같이 처음이나 중간에 올 수 없고, 마지막에만 올 수 있다.
함수의 매개변수에는 기본값을 지정하여 값이 들어오지 않았을 때의 상황을 대비할 수 있다.
function sum(x = 0, y = 0) {
return x + y;
}
console.log(sum(1)); // 1
console.log(sum(1, 2)); // 3
named parameter로 매개변수를 명명하지 않은 경우에는 호출시 매개변수가 순서대로 할당된다. 그러므로 매개변수의 기본값을 지정할 때에는 왼쪽(먼저 정의한) 매개변수부터 기본값을 지정해 주어야 한다.