O coletor de lixo javascript descarta variáveis ​​globais?

Estou confuso sobre isso desde que vi vários comentários diferentes. Estou lendo um livro de javascript onde ele menciona que definir variáveis ​​globais como null é uma boa prática (supondo que não há outras referências) e o GC recupera a memória para essa variável em sua próxima varredura. Eu vi outros comentários que dizem que as variáveis ​​globais nunca são descartadas pelo GC.

Além disso, ao programar o javascript em uma estrutura OOP, o que acontece se eu tiver algo assim (onde o jogo está no contexto global):

var game = {};
game.level = 0;
game.hero = new hero();
//do stuff
game.hero = null;

Uma vez que o herói vive dentro de um objeto que é armazenado no jogo, que está em um contexto global, se eu definir por exemplo herói para nulo, isso seria descartado pelo GC?

questionAnswers(1)

yourAnswerToTheQuestion