Até aqui, você já trabalhou com estruturas como Object, Map e Set.
Agora vamos conhecer duas variações especiais:
WeakMapWeakSet
Elas existem para resolver problemas específicos de memória e ciclo de vida.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que são referências fracas
- Diferenciar
MapdeWeakMap - Diferenciar
SetdeWeakSet - Evitar vazamentos de memória
- Reconhecer cenários reais de uso
Relembrando: referências em JavaScript
Objetos em JavaScript são armazenados por referência.
Enquanto existir uma referência a um objeto, ele:
- não é removido da memória
- não pode ser coletado pelo Garbage Collector
Isso é importante — e perigoso se mal usado.
O problema com Map e Set
Veja este exemplo:
const map = new Map();
let usuario = { nome: "Daniel" };
map.set(usuario, "dados privados");
usuario = null;
Mesmo após usuario = null:
- o objeto continua existindo
- porque o
Mapmantém a referência
O que é um WeakMap?
WeakMap é uma estrutura onde:
- as chaves são objetos
- as referências às chaves são fracas
Isso significa:
se não houver outra referência ao objeto, ele pode ser removido da memória.
Exemplo com WeakMap
const weakMap = new WeakMap();
let usuario = { nome: "Daniel" };
weakMap.set(usuario, "dados privados");
usuario = null;
Agora:
- quando o objeto não for mais usado
- ele pode ser coletado automaticamente
Limitações do WeakMap
Justamente por lidar com memória, o WeakMap tem restrições:
- não é iterável
- não possui
size - chaves só podem ser objetos
Caso real — dados privados por objeto
const dadosPrivados = new WeakMap();
class Usuario {
constructor(nome) {
dadosPrivados.set(this, { nome });
}
getNome()
{
return dadosPrivados.get(this).nome;
}
}
const u = new Usuario("Daniel");
console.log(u.getNome()); // Saída será: Daniel
Aqui:
- os dados não ficam expostos
- não há vazamento de memória
O que é um WeakSet?
WeakSet é semelhante ao Set, mas:
- armazena apenas objetos
- mantém referências fracas
Ele é usado quando você só precisa saber:
“esse objeto já passou por aqui?”
Exemplo com WeakSet
const visitados = new WeakSet();
let elemento = document.createElement("div");
visitados.add(elemento);
console.log(visitados.has(elemento)); // Saída será: true
elemento = null;
Quando o elemento some:
- o
WeakSetnão impede a coleta
Quando usar WeakMap?
- dados privados associados a objetos
- metadados
- caches temporários
Quando usar WeakSet?
- marcar objetos processados
- evitar duplicação de processamento
- controle de ciclo de vida
Quando NÃO usar
Não use WeakMap ou WeakSet quando:
- você precisa iterar
- precisa saber o tamanho
- precisa persistir dados
Resumo da aula para nunca mais esquecer
WeakMapusa referências fracas- Evita vazamento de memória
- Não é iterável
WeakSetmarca objetos sem impedir coleta- Use apenas quando fizer sentido
Na próxima aula, vamos fechar esse bloco com Intl avançado, lidando com datas, números e internacionalização corretamente.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Donkey Kong
A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.
ENIAC
O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
Playstation
O Playstation só nasceu porque uma parceria entre Sony e Nintendo, para desenvolver uma unidade de CD para o Super Nintendo, fracassou. Clique aqui e saiba mais.
Recorde de patentes
A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.
Computadores de 1,5 tonelada
Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.










