얕은 복사 Shallow Copy 와 깊은 복사 Deep Copy

홍예림·2023년 1월 13일
0

🔗 함께보기

🚩[JS] Null 타입과 Undefined 타입
: JavaScript의 변수 타입(원시타입, 참조타입)


🌿 서론

자바스크립트의 변수 :: 원시타입 vs 참조타입

타입정의종류
원시타입(Primitive Type)불변 값(변경할 수 없는 값)7가지 (Boolean, Null, Undefined, Number, BigInt, String, Symbol)
참조 타입(ReferenceType)식별자로 참조할 수 있는 메모리 상의 값원시값 외 모든 객체

🌿 본론

타입정의종류접근원본의 불변성(immutability)
원시타입(Primitive Type)불변 값(변경할 수 없는 값)7가지 (Boolean, Null, Undefined, Number, BigInt, String, Symbol)변수 선언, 초기화, 할당 시 값이 저장된 메모리 영역에 직접적으로 접근(Access By Value)원본 유지
참조 타입(ReferenceType)식별자로 참조할 수 있는 메모리 상의 값원시값 외 모든 객체변수가 가지고 있는 메모리 주소를 이용해서 변수의 값에 접근(Access By Reference )원본 변경

원시타입 ⇒ 깊은 복사 Deep Copy

: 새로운 메모리 공간을 확보해, 완전히 복사한다. 일반적으로 우리가 알고 있는 개념의 복사.

참조타입 ⇒ 얕은 복사 Shallow Copy

: 참조 타입 데이터가 저장한 '메모리 주소 값'을 복사

참조 타입을 깊은복사 하기

  • JSON 객체 이용
    :JSON.parse()와 JSON.stringify()를 이용해, 참조타입을 원시타입화(문자열화)해서 복사한다

🌿 결론

원본 데이터가 변경되지 않도록 주의하려면, 복사 시 깊은복사 처리되었는지 확인하도록 한다.


📚 참고자료

profile
SYNC 5반 2023.07 - 2023.12

0개의 댓글