전개연산자 : [...배열] , {...객체}
전개연산자는 얕은 복사가 아닌 깊은 복사를 하기위해 사용하는 연산자이다.
자바스크립트에서 배열과 객체는 할당할때 얕은 복사라는것을 한다.
const food = ['apple', 'peach', 'berry'];
const food2 = food;
food2.push('rice');
console.log(food);
console.log(food2);
위의 결과물을 보면 아래와 같은 사진이 나온다.
이런식으로 새로운 변수에 배열을 할당해주었는데도 불구하고 같은 값을 갖는 것을 얕은 복사(참조복사) 라고 한다.
깊은 복사는 이와 반대로 배열이 새로운 변수에 할당될때 독릭접으로 할당되는 경우를 깊은 복사라 한다. 그리고 이때 사용하는것이 위의 전개 연산자 이다.
위와같이 food3에 전개연산자를 이용해 새로운 배열을 할당하고 각각의 배열에 melon과 watermelon을 push해주었는데 얕은복사의 food2와는 다르게 서로 다른 배열값을 갖는모습을 볼 수 있다.
자료와 자료 사이에 전개연산자를 기입할 수 있다.
객체 또한 배열과 마찬가지로 깊은복사 할 때 전개연산자를 사용할 수 있다.