엔진 내부적으로는 …[1,2]를 … 연산자가 붙으면 1,2로 치환하고 이를 함수 호출 시 인자로 넘기는 것이다. 이는 이터러블 규약으로 ES6에 정해진 일종의 PROTOCOL이라고 한다.
값이 여러개 사용되는 배열같은 곳에서도 활용이 될 수 있는데, 사용할 수 있는 경우를 여러개로 나눠서 간단하게 샘플 코드를 짜봤다.
1 2 3 4 5 6 7 8 9 10 11
let arr1 = [1,2]; let arr2 = [3,4,5]; let arr3 = [...arr1, ...arr2];
console.log(arr3);
let arr4 = [1,2]; let arr5 = [3,4,5];
arr4.push(...arr5); console.log(arr4);
1 2 3
[출력 결과] [ 1, 2, 3, 4, 5 ] [ 1, 2, 3, 4, 5 ]
여러 개의 값을 가지고 있는 배열을 펼치기 연산을 통하여 통합하거나 배열의 끝자리에 붙이는게 상당히 간편한 것을 확인할 수 있다.
rest parameter(나머지 파라미터)
말 그대로 나머지 파라미터로 함수에서 사용되며 함수 인자/파라미터 마지막에 “…”을 붙여서 가변적으로 넘어올 수 있는 함수 인자/파라미터를 배열로 바인딩할 수 있다. 물론 argument를 활용하면 비슷한 기능을 흉내낼 수 있겠지만 argument 같은 경우에는 정확하게 배열이 아닌 유사배열이기 때문에 어느 정도 차이가 존재한다.