rest 매개변수는 나머지 매개변수라고 하며, 스프레드 연산자 처럼 기호 ’…’ 으로 표기한다.

스프테드 연산자는 배열이나 객체처럼 반복 가능한 값을 개별 요소로 분리하지만,

rest 매개변수는 반대로 개별 요소를 배열로 묶어주는 역할을 한다.

const func = (...rest)=>{
    console.log(rest)
}

func(1, 2, 3, 4) // [1, 2, 3, 4]

다른 매개변수와 rest 매개변수를 함께 사용하는 경우, 인수는 순차적으로 왼쪽부터 오른쪽으로 할당된다.

const func = (num, ...rest)=>{
		console.log(num)
    console.log(rest)
}

func(1, 2, 3, 4) 

// 1
// [2, 3, 4]

인수는 왼쪽부터 오른쪽으로 할당되기때문에, rest 매개변수를 사용할 때,

rest 매개변수는 가장 마지막에 작성해주어야 한다.

const func = (...rest, num)=>{ // 에러발생 rest 매개변수는 가장 오른쪽(마지막)에 작성
		console.log(num)
    console.log(rest)
}

func(1, 2, 3, 4)