> Как сборщик мусора находит неиспользуемые объекты в JavaScript (JavaScript)
Уровень: middle · Роль: frontend · Категория: Технические вопросы
Компании: ООО Снэп АйТи
Стек: JavaScript
> Пример ответа
Сборщик мусора в JavaScript использует алгоритм «mark-and-sweep» (пометить и очистить). Основной принцип: начиная с корневых объектов (глобальный объект window, global, текущий стек вызовов, DOM-элементы и т.д.), сборщик обходит все ссылки, помечая достижимые объекты. Непомеченные объекты считаются недостижимыми и удаляются.
Ключевые моменты:
-
Корни - это объекты, которые гарантированно доступны (например, локальные переменные в функциях, глобальные переменные).
-
Обход графа - сборщик рекурсивно проходит по всем ссылкам от корней, помечая каждый встреченный объект.
-
Очистка - объекты, не получившие метку, удаляются из памяти.
Важно: в современных движках (V8, SpiderMonkey) применяются оптимизации, такие как поколенческая сборка (молодые объекты проверяются чаще) и инкрементальная сборка (работа частями, чтобы не блокировать выполнение кода). Однако базовый принцип остаётся неизменным - достижимость от корней.
> Похожие задачи по frontend
Как работает метод getTime у объекта Date в JavaScript
Как выполняется функция с учетом хостинга в JavaScript
Что такое слабая ссылка в WeakSet и WeakMap в JavaScript
Как использовать try-catch для обработки ошибок при парсинге JSON в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью