Прежде всего: это не сборка мусора, но я не буду на этом останавливаться, поскольку это не ваш настоящий вопрос.
В памяти пространство, занимаемое объектом { name: 'John' }
, все еще хранит это.
Вы только что присвоили null
одной из переменных, "указывающих на нее".
Представьте это как указатели как в c ++:
let user = { name: 'John' };
user ⟶ {name: 'John'}
admin
let admin = user;
user ⟶ {name: 'John'}
↗
admin
user = null;
user {name: 'John'}
↗
admin
И, следовательно, «пользователь» на самом деле не указывает ни на что, он указывает на точку « null », которая в основном означает « ничто ».