매개변수 이름 앞에 세개의 점을 붙여 정의한 매개변수
function restTest(...rest) {
console.log(rest);
}
restTest(1,2,3,4) // [ 1, 2, 3, 4 ]
function restTest(para, ...rest) {
// para : 매개변수
console.log(para); // 1
// rest : rest parameters
console.log(rest); // [ 2, 3, 4 ]
}
function restTest(para, ...rest) {
// para : 위의 예시에서는 1
console.log(para); // 1
// rest : 위의 예시에서는 1을 제외한 나머지 2,3,4를 배열로 변환하여 [2,3,4]
console.log(rest); // [ 2, 3, 4 ]
}
뭉쳐있는 여러개의 값들을 개별적인 값들의 목록으로 만들때 사용되는 문법
for..of
문으로 순회할 수 있는(배열, 문자열 등) iterable(순서가 있는)에 한정된다.console.log(...[1,2,3]) // 1 2 3
console.log(...'Pocketmon'); // 'P' 'o' 'c' 'k' 'e' 't' 'm' 'o' 'n'
// iterable이 아닌 객체에는 spread syntax를 사용할 수 없다.
console.log(...{ a: 1, b: 2, c :3 }); // TypeError: Found non-callable @@iterator
// rest parameters로 배열을 펼친 결과를 실행
console.log(...[1,2,3]) // 1 2 3
// rest parameters로 문자열들을 각각 펼친 결과를 실행
console.log(...'Pocketmon'); // 'P' 'o' 'c' 'k' 'e' 't' 'm' 'o' 'n'
// 결과가 각각 배열과 문자열에 대한 목록이다.