[책] 모던 자바스크립트 Deep Dive(이웅모 저) 내용 발췌
Rest 파라미터(나머지 매개변수)는 매개변수 이름 앞에 세 개의 점 ...을 붙여서 정의한 매개변수를 의미한다. Rest 파라미터는 함수에 전달된 인수들의 목록을 배열 로 전달받는다. Rest 파라미터는 이름 그대로 먼저 선언된 매개변수에 할당된 인수를 제외한 나머지 인수들로 구성된 배열이 할당된다. 따라서 Rest 파라미터는 반드시 마지막 파라미터이어야 한다. Rest파라미터는 단 하나만 선언할 수 있다.
function bar(param1, param2, ...rest) {
console.log(param1); //1
console.log(param2); //2
console.log(rest); //[3,4,5]
}
bar(1, 2, 3, 4, 5);
ES6에서 도입된 스프레드 문법 ...은 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만든다.
const arr = [1, 2, 3];
const max = Math.max(...arr);
console.log(max); //3스프레드 문법은 Rest 파라미터 와 형태가 동일하여 혼동할 수 있으나 서로 반대의 개념이므로 주의할 필요가 있다.Rest 파라미터는 함수에 전달된 인수들의 목록을 배열로 전달받기 위해 매개변수 이름 앞에 ...을 붙이는 것이다.스프레드 문법은 여러 개의 값이 하나로 뭉쳐 있는 배열과 같은 이터러블을 펼쳐서 개별적인 값들의 목록을 만드는 것이다.