rest parameters

spread 관련 코드 설명을 하다가 등장한 파라미터에 관한 설명입니다. 역시 설명은 MDN을 참고.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters

코드를 보죠.

function a(a, b, ...arg) {
    console.log(a); // 10
    console.log(arg[0]); // 30
}

a(10, 20, 30, 40, 50);

파라미터를 받을 때 지정된 개수만큼 받는 것이 아니라 ...arg로 지정해주면 무한대(?)의 파라미터를 받을 수 있습니다. 이렇게 들어오는 값은 배열로 전달되는데 해당하는 인덱스의 값을 받아서 처리해주면 되는 것이지요.

하지만 해당 코드를 아래와 같이 바꾸면 Uncaught SyntaxError: Rest parameter must be last formal parameter라는 오류 메시지를 콘솔에서 뿌려줍니다.

function a(a, b, ...arg, c) {
    console.log(c);
}

a(10, 20, 30, 40, 50);