JavaScript는 **자동 가비지 컬렉션(garbage collection)**을 사용합니다. 컬렉터는 마크 앤 스위프(mark-and-sweep) 알고리즘을 사용합니다: 루트(전역 객체, 현재 콜 스택)에서 시작하여 도달 가능한(reachable) 모든 것을 표시한 뒤, 도달 불가능한 모든 것을 해제합니다. 수동으로 free()를 호출하지는 않지만 — 실수로 참조를 살려두어 누수를 일으킬 수는 있습니다.
네 가지 고전적 누수 원인
js
. = . || {};
.[id] = bigObject;
el.(, handler);
id = (tick, );
() {
huge = ();
huge.;
}
