> Как сборщик мусора находит неиспользуемые объекты в JavaScript (JavaScript)

Уровень: middle · Роль: frontend · Категория: Технические вопросы

Компании: ООО Снэп АйТи

Стек: JavaScript

> Пример ответа

Сборщик мусора в JavaScript использует алгоритм «mark-and-sweep» (пометить и очистить). Основной принцип: начиная с корневых объектов (глобальный объект window, global, текущий стек вызовов, DOM-элементы и т.д.), сборщик обходит все ссылки, помечая достижимые объекты. Непомеченные объекты считаются недостижимыми и удаляются.

Ключевые моменты:

  • Корни - это объекты, которые гарантированно доступны (например, локальные переменные в функциях, глобальные переменные).

  • Обход графа - сборщик рекурсивно проходит по всем ссылкам от корней, помечая каждый встреченный объект.

  • Очистка - объекты, не получившие метку, удаляются из памяти.

Важно: в современных движках (V8, SpiderMonkey) применяются оптимизации, такие как поколенческая сборка (молодые объекты проверяются чаще) и инкрементальная сборка (работа частями, чтобы не блокировать выполнение кода). Однако базовый принцип остаётся неизменным - достижимость от корней.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью