Rest Parameter 문법은 함수의 마지막 인자들을 숫자의 제한없이 배열로 받아 처리할 수 있도록 해주는 기능입니다.
function foo (a, b, ...c) {
console.log(c); // ?
console.log(Array.isArray(c)); // ?
}
foo('a', 'b', 'c', 'd', 'e', 'f');
// NO GOOD
// Rest parameter must be LAST parameter
function foo (...a, b) {
console.log(a);
}
foo(1,2,3);
Spread syntax는 배열이나 유사배열 형태의 자료를 퍼지게 해주는 기능입니다. 예를 들어, 함수를 실행할때 넘겨주는 인자나 배열을 만들고 요소를 지정해줄때 사용할 수 있습니다.
// Example #1
const arr1 = [ 1, 2, 3 ];
const arr2 = [ 4, 5, 6 ];
// 배열의 요소로 퍼지게 합니다.
const total = [ ...arr1, ...arr2 ];
console.log(total); // ?
function foo (a, b, c) {
return a + b + c;
}
const arr = [ 1, 2, 3 ];
// 함수 실행문의 인자로 퍼지게 합니다.
foo(...arr); // ?