Programming/JavaScript
Javascript 데이터 할당 (기본형, 참조형, 중첩 객체도)
따`ddah
2024. 6. 11. 04:12
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