15day - Spread Operator

이주영·2022년 11월 22일
0

Spread Operator

객체나 배열을 복사한 후 정보를 수정하면 원본의 정보까지 수정된다.
객체나 배열은 많은 데이터를 한 곳에 담을 수 없어서 다른 주소값에 보관하기 때문에 데이터가 아닌 데이터가 담긴 주소가 복사된 것이기 때문이다.
이러한 문제를 해결하기 위해서는 복사처럼 보이게끔
새로운 객체를 만들어 데이터를 일일이 가져오는 방법이 있는데 이건 너무 번거롭다.

이것을 해결하기 위해 사용하는 것이 스프레드 연산자이다.
앞에 ...만 붙여주면 데이터만 복사해올 수 있다.

객체 안의 객체는 또 다른 주소값을 가지고 있는 것이기 때문에 따로 또 스프레드 연산자를 입력해주어야 한다.

이렇게 스프레드 연산자를 통한 복사를 얕은 복사(shallow copy)라고 한다.

객체 안에 객체가 몇 개가 있을지 모르는 상황이라면 너무 번거롭다. 이럴 때에는 JSON.stringify()안에 profile1을 담아 문자열로 만들어 준다.

그리고나서 JSON.parse() 안에 넣어주면 새로운 객체를 만들어준다.

이러한 방식을 깊은 복사(deep copy)라고 한다.
하지만 이 방법은 속도가 조금 느리기 때문에 어떻게 하면 더 효율적으로 사용할 수 있을까 하고 만들어진 라이브러리가 있다. (lodash)

0개의 댓글