얕은 복사 (shallow copy)
얕은 복사는 참조(주소)값의 복사를 나타낸다.
복사 후 객체의 value 값을 변경하였더니 기존의 값도 같이 변경됨.
두 객체를 비교해도 true로 출력
이렇게 자바스크립트의 참조 타입은 얕은 복사가 되며, 이는 데이터가 그대로 생성되는 것이 아닌 해당 데이터의 참조 값(메모리 주소)을 전달하여 결국 한 데이터를 공유하는 것이라고 볼 수 있다.
깊은 복사 (deep copy)
깊은 복사는 값 자체의 복사를 나타낸다.
변수 a를 새로운 b에 할당 b값을 변경해도 기존의 a의 값은 변경되지 않음
두 값을 비교해도 false가 출력
서로의 값은 단독으로 존재하는 것
자바스크립트의 원시 타입은 깊은 복사가 되며, 이는 독립적인 메모리에 값 자체를 할당하여 생성하는 것이라고 볼 수 있다.
자바스크립트의 데이터 타입 [ 원시형 / 참조형 ]
기본(원시)형에는 Number, String, Boolean, null, undefined가 있으며 ES6에서는 Symbol도 추가되었다.
참조형은 대표적으로 객체(Object)가 있고 그 하위에 배열(Array), 함수(Function), 정규표현식(RegExp) 등이 있으며, ES6에서는 Map, Set, WeakMap, WeakSet 등도 추가되었다.
두 타입의 가장 대표적인 차이로는 기본형에는 바로 값을 그대로 할당한다는 것이고, 참조형에는 값이 지정된 주소값을 할당(참조)한다는 것이다.
'React' 카테고리의 다른 글
| React vs. Vue vs. Angular (0) | 2022.12.13 |
|---|---|
| var, let, const 의 차이 (0) | 2022.10.13 |
| react-js-pagination 라이브러리 (0) | 2022.10.07 |
| react-hook-form (useForm) 사용 (0) | 2022.10.06 |
| 페이지 이동 / useNavigate() (0) | 2022.08.15 |