What I Learned/SpartaCodingClub
[내일배움캠프] 2022-12-15 TIL
Interrobang
2022. 12. 15. 10:52
자바스크립트 심화 유튜브 강의 (최원장 튜터님)
데이터 타입
- 기본형(Primitive type):
- 복제 방식: 값이 담긴 주소값을 복제
- 불변성
- Number, String, Boolean, null, undefined, Symbol
- 참조형(Reference type):
- 복제 방식: 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제 → 얉은 복사, 깊은 복사 유의
- 가변성
- Array, Function, Date, RegExp, Map, Set
* 변수/상수를 나누는 기준: 변수영역이 바뀔 수 있는지
* 불변성/가변성을 나누는 기준: 데이터 영역이 바뀔 수 있는지
불변객체
참조형 데이터 타입의 경우 기본적으로 가변성을 가지기 때문에 복제 시 문제가 발생 → 이를 해결하기 위해 불변성을 가지게 한 객체
- 얉은 복사: 바로 아래 단계의 값만 복사 → 중첩된 객체에서 참조형 데이터가 저장된 프로퍼티를 복사할 때 주소값만 복사 됨
- 깊은 복사: 내부의 모든 값들을 하나하나 다 찾아서 모두 복사
ex) 재귀함수를 이용한 깊은 복사
let copyObjectDeep = function(target) {
let result = {};
if (typeof target === 'object' && target !== null) {
for (let prop in target) {
result[prop] = copyObjectDeep(target[prop]);
}
} else {
result = target;
]
return result;
}