Até aqui, aprendemos a controlar tempo (assincronicidade) e estado (closures).
Agora vamos aprender a controlar algo ainda mais sutil:
a mudança de dados.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que é imutabilidade
- Saber por que mutação causa bugs difíceis
- Trabalhar com dados sem alterá-los
- Reconhecer padrões imutáveis no JavaScript moderno
- Escrever código mais previsível
O que é imutabilidade?
Imutabilidade significa:
não alterar um dado existente — criar um novo.
Ou seja:
- Você não muda o original
- Você cria uma nova versão
Mutação: o problema silencioso
Veja este exemplo:
const usuario =
{
nome: "Daniel", idade: 30
};
function fazerAniversario(pessoa)
{
pessoa.idade++;
}
fazerAniversario(usuario);
console.log(usuario.idade); // Saída será 31
O problema aqui não é o resultado.
O problema é:
- Quem mudou o objeto?
- Quando mudou?
- Quem mais depende dele?
Imutabilidade elimina esse problema
Agora a versão imutável:
const usuario = { nome: "Daniel", idade: 30 };
function fazerAniversario(pessoa)
{
return
{
...pessoa,
idade: pessoa.idade + 1
};
}
const usuarioAtualizado = fazerAniversario(usuario);
console.log(usuario.idade); // Saída será 30
console.log(usuarioAtualizado.idade); // Saída será 31
Agora:
- O original permanece intacto
- A mudança é explícita
- O fluxo é previsível
Imutabilidade não é “modinha”
Ela resolve problemas reais:
- Debug mais fácil
- Menos bugs imprevisíveis
- Fluxo de dados claro
- Facilidade de testes
- React
- Redux
- Vue (em vários pontos)
- Zustand
Arrays e mutação (armadilha comum)
Esses métodos MUTAM o array:
pushpopsplicesort
Alternativa imutável
const numeros = [1, 2, 3];
const novosNumeros = [...numeros, 4];
console.log(numeros); // Saída: [1, 2, 3]
console.log(novosNumeros); // Saída: [1, 2, 3, 4]
Map, filter e reduce já são imutáveis
Você já usa imutabilidade sem perceber:
const pares = numeros.filter(n => n % 2 === 0); - O array original não muda
- Um novo array é criado
Imutabilidade + Closures = poder
Closures guardam estado.
Imutabilidade garante que esse estado:
- não seja corrompido
- não seja alterado inesperadamente
Custo da imutabilidade (honestidade)
Imutabilidade:
- cria novos objetos
- usa mais memória
Mas:
- o ganho em previsibilidade compensa
- otimizações modernas minimizam isso
Resumo da aula para nunca mais esquecer
- Imutabilidade evita efeitos colaterais
- Não altere dados — crie novos
- Mutação dificulta debug
- JavaScript moderno favorece imutabilidade
- Previsibilidade vale mais que “economia”
Na próxima aula, vamos dar o próximo passo funcional: Currying.
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?
PDP-1
O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.
Ábaco
O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.
Asteroids
O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.
Space Invaders
A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.










