Выбор ответа Junior Память и сборка мусора обновлено

Освобождает ли x = null память

Вопрос

Что происходит при bigData = null, если на объект больше нет других ссылок?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Объект станет недостижимым, и сборщик освободит его когда-нибудь позже. Присваивание null убирает ссылку.

Варианты ответа

  1. Память освобождается мгновенно и синхронно, прямо на этой строке
  2. Объект станет недостижимым, и сборщик освободит его когда-нибудь позжеправильный ответ
  3. Ничего: память в JS освобождается только при перезагрузке страницы
  4. Объект удалится, только если дополнительно вызвать delete bigData

Разбор

Присваивание null убирает ссылку. Если других ссылок нет, объект становится мусором, но освобождает его сборщик по своему расписанию, а не в момент присваивания. Ручного освобождения в JS нет. Память возвращается и без перезагрузки, это основная работа GC. delete удаляет свойства объектов, а не переменные, и тоже не вызывает сборку.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.