배열, 문자열, 객체 등 반복 가능한 객체를 개별 요소로 분리할 수 있다. 배열을 바꾸지 않고 새로운 값을 복사할 수 있는 방법을 제공하고 배열을 합치거나 펼쳐진상태로 배열을 새로운 함수의 파라미터로 전달해줘야 할때 유용하게 사용할 수 있다.
기존의 참조관계를 끊고 메모리의 새 배열로 생성(복사)한것.
let arr = ["apple", "orange", 100];
let newArr = [...arr];
console.log(arr === newArr) //false
let pre = ["apple", "orange", 100];
let newData = [0, 1, 2, 3, ...pre , 4];
function sum (a, b, c) {
return a+b+c;
}
let pre = [100, 200, 300];
sum.apply(null, pre); //방법 1, 600
sum(...pre); //spread operator 사용, 600
[...Array(n).keys()]
console.log([...Array(10).keys()]);
[...Array(10).keys()].map((v) => v+1)
console.log([...Array(10).keys()].map((v) => v+1));