첫 면접 때도 그렇고 코딩애플 리액트 영상을 볼 떄도 뭔가 헷갈리는 개념이었다. 이번 기회에 정리하고 넘어가도록 하겠다.
복사가 되긴 했지만 변수가 가르키는 주소값이 같으면 얕은 복사라고 한다.
두 연산 모두 뎁스 1까지만 깊은 복사가 이뤄진다고 보기 때문에 얕은 복사가 되는 것이라고 볼 수 있다.
코딩애플 강좌 때 배열 객체에 대해 값을 변경하기 위해 set000을 할 때 딥카피가 스프레드 연산자에서 된다고 했는데 내가 생각했을 땐 1뎁스 되는 걸 설명하신 것이 아닐까 싶다.
반대로 완전히 새로운 주소 값을 가지게 되면 깊은 복사가 된 것이라고 볼 수 있다.
-> 문제점 : 제이슨을 쓸 때는 문제가 생길 수 있다는데?
함수, Date 객체, 정규표현식 등의 데이터는 복사되지 않고 두번째 이유는 다른 깊은복사 방법들(재귀함수, lodash) 보다 느리다는 단점이 있다.