일단 얕은복사와 깊은복사를 알기 위해선 원시타입과 객체타입을 알고 있어야 한다.
자바스크립트에서 데이터 타입은 크게
원시 타입과 객체 타입으로 나뉜다.
원시 타입에는 Number, BigInt, String, Boolean, Null, Undefined, Symbol 7개의 타입이 있고, 그 외 모든 데이터는 객체 타입이다.
const animal = {name:'콩자', age: 10}
const animalCopy = animal
animalCopy.age = 20
console.log(animal, animalCopy)
//{name: '콩자', age: 20} {name: '콩자', age: 20}
const animal = {name:'콩자', age: 10}
const animalCopy = {name:'콩자', age: 10}
animalCopy.age = 20
console.log(animal, animalCopy)
//{name: '콩자', age: 10} {name: '콩자', age: 20}
const animal = {
name:'콩자', age: 10,
name:'콩자', age: 10,
name:'콩자', age: 10,
name:'콩자', age: 10
//100개
}
const animalCopy = {...anmial} //스프레이드 구문 사용
animalCopy.age = 20
console.log(animal, animalCopy)
//{name: '콩자', age: 10} {name: '콩자', age: 20}
얕은 복사와 깊은 복사를 좀 더 이해하기 위해선 메모리의 대한 이해도가 있어야 한다.