얕은 복사는 값의 주소값인 참조값을 복사하여 할당하는 것이다.
얕은 복사는 메모리의 주소를 복사하는 것이기 때문에 복사하여 할당한 변수의 값을 재할당 하면 원래의 값도 같이 변경된다.
const person = {
name: '홍길동',
age: 20
}
const name = person // 얕은 복사 -> 참조값 복사
name.age = 30;
console.log(person.age); //30
깊은 복사를 복사하려는 데이터의 실제 값을 복사하는 것이다.
그렇기 때문에 복사를 한 값과 원래의 실제 값과는 주소가 각각 따로이기 때문에 깊은 복사를 한 값은 완전 새로운 데이터이다.
const a = 1;
const b = a;
console.log(a==b);
참조값의 깊은 복사를 하는 방법은 여러가지 있다.
object.assign(), 스프레드, 재귀함수 등등