[책] 모던 자바스크립트 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 파라미터
는 함수에 전달된 인수들의 목록을 배열로 전달받기 위해 매개변수 이름 앞에 ...
을 붙이는 것이다.스프레드 문법
은 여러 개의 값이 하나로 뭉쳐 있는 배열과 같은 이터러블을 펼쳐서 개별적인 값들의 목록을 만드는 것이다.