JavaScript usa coleta automática de lixo. O coletor usa um algoritmo mark-and-sweep: começando das raízes (objeto global, a pilha de chamadas atual), marca tudo que é alcançável, depois libera tudo que é inalcançável. Você nunca free() manualmente — mas você pode acidentalmente manter referências vivas, causando vazamentos.
