[2주차]얕은 복사(shallow copy)와 깊은 복사(deep copy)

aekyoung kwon·2022년 11월 18일
0

일단 얕은복사와 깊은복사를 알기 위해선 원시타입과 객체타입을 알고 있어야 한다.

자바스크립트에서 데이터 타입은 크게
원시 타입객체 타입으로 나뉜다.

원시 타입에는 Number, BigInt, String, Boolean, Null, Undefined, Symbol 7개의 타입이 있고, 그 외 모든 데이터는 객체 타입이다.

  • 원시타입 => shallow copy : 얕은 복사
    const animal = {name:'콩자', age: 10}
    const animalCopy = animal

    animalCopy.age = 20

    console.log(animal, animalCopy)

    //{name: '콩자', age: 20} {name: '콩자', age: 20}
  • 객체타입 => deep copy : 깊은 복사
    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}

얕은 복사와 깊은 복사를 좀 더 이해하기 위해선 메모리의 대한 이해도가 있어야 한다.

profile
멍텅구리

0개의 댓글