자바스크립트에서 가비지 컬렉션은 어떤식으로 동작할까?
*가비지 컬렉션(GC) : 프로그램 메모리 관리 기법으로 할당했던 메모리 중에서 불필요한 영역을 제거하는 기능이다.
자바스크립트는 도달 가능성 이라는 개념을 사용해 메모리 관리를 수행합니다.
도달 가능한 값은 어떻게든 접근하거나 사용할 수 있는 값을 의미합니다.
도달 가능한 값은 메모리에서 삭제되지 않습니다.
ROOT의 참조 가능여부가 중요한 포인트입니다.
현재 함수의 지역 변수와 매개변수
중첩 함수의 체인에 있는 함수에서 사용되는 변수와 매개변수
전역(global) 변수
const obj = {
name : 'jo',
age : 28,
}
// obj 복사
const test = obj;
// obj 제거
obj = null;
function marry(man, woman) {
woman.husband = man;
man.wife = woman;
return {
father: man,
mother: woman
}
}
let family = marry({
name: "John"
}, {
name: "Ann"
});
delete family.father;
delete family.mother.husband;
Reference