1. 기본형 DATA
var a;
a = 'abc';
a = 'abcdef';
📍풀이
2. 참조형 DATA
var obj = {
a: 1,
b: 'bbb'
};
obj.a = 2;
📍풀이
객체에 있는 프로퍼티 값을 바꿀 때는 obj 값 주소는 그대로 @5005이게 된다.
기본형에 비해서 참조형이 메모리 할당 과정에서 1단계를 더 거치기 때문이다.
그래서 기본형이 불변성이라는 것이다. 값이 바뀌지 않는다.
3. 중첩 객체도
var obj = {
x: 3,
arr: [3, 4]
};
obj.arr = 'str';
📍풀이
@5004는 7104에서 참조하고 있었는데 obj.arr = 'str';을 하고나면 @5004를 참조하는 대상이 0이 된다. ( = 참조 카운트는 0이다)
참조 카운트가 0이 되면 garbage collecting이 발생하여 사라지게 된다. GC가 발생하면 @5004를 참조하고 있던 @8104와 @8105도 GC가 발생한다.
4. 변수 복사
var a = 10;
var b = a;
var obj1 = {c: 10, d: 'ddd'};
var obj2 = obj1;
b = 15;
obj2.c = 20;
📍풀이
728x90
'Programming > JavaScript' 카테고리의 다른 글
HTML 문서에 자바스크립트 넣기 3가지 방법 (0) | 2024.07.06 |
---|---|
JavaScript 호이스팅, (0) | 2024.06.11 |
중간 퀴즈 2 풀이 (0) | 2024.06.11 |
중간 퀴즈 1 풀이 (0) | 2024.06.10 |
웹시스템개발 기말고사 핵심 정리 -2 디자인 패턴 (0) | 2024.06.10 |