intermediate
Сборка мусора
Достижимость, корни, модель mark-and-sweep, ограничения finalization и давление на память.
JavaScript использует автоматическое управление памятью. Коллекторы освобождают объекты, недостижимые от корней (глобальный объект, текущий stack, замыкания в области видимости).
Если остаётся любой путь ссылки — замыкание, кэш, listener, таймер, DOM-узел, global — объект жив. Присвоение `null` локальной переменной редко чинит утечку, если другой путь удерживает объект.
`FinalizationRegistry` — ненадёжный механизм бизнес-cleanup.
На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и производительностью или между безопасностью и удобством.
Чеклист:
- Рассуждайте от корней и достижимости.
- Ищите удерживающие ссылки в DevTools.
- Очищайте listeners и таймеры при teardown.