JavaScript ES6 문법 - rest parameter

JavaScript

rest parameter(나머지 파라미터 ...)

일정하지 않은 갯수의 파라미터를 넘길 때 유용합니다.

1
2
3
4
5
6
7
function addNum(...numbers) {
return numbers.reduce((sum, number) => {
return sum + number;
}, 0);
}
addNum(1,2,3,4,5);

arguments와 비교해보면 rest parameter의 장점이 드러납니다.

ES5이하

1
2
3
4
5
6
7
function arr() {
console.log(arguments); // 유사배열인 [1,2,3,4,5,true,null,undefined]
var arg = Array.prototype.slice.call(arguments, 2);
console.log(arg); // [3,4,5,true,null,undefined]
}
arr(1,2,3,4,5,true,null,undefined);

이렇게 유사배열을 배열로 사용하려면 Array.prototype.slice.call 방식을 사용했습니다.

ES6

1
2
3
4
5
function arr(x , y, ...rest) {
console.log(rest);
}
arr(1,2,3,4,5,true,null,undefined);

rest parameter방식을 사용하면 유사배열이 아닌 실제 배열로 반환합니다. [3,4,5,true,null,undefined]

ES6 포스팅

변수선언 let, const
Blocks and IIFEs
Strings 문자열표기법 등
Arrow functions
Class
rest parameter
spread operator
default parameter

Share