Nas últimas aulas, aprendemos três recursos muito importantes do JavaScript moderno: Optional Chaining (?.), Nullish Coalescing (??) e Spread Operator (...).
Agora é hora de ver esses conceitos funcionando em situações reais, do tipo que aparecem todos os dias em aplicações web.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Usar Optional Chaining com segurança em dados incertos
- Aplicar Nullish Coalescing para definir valores padrão corretos
- Usar Spread Operator para copiar e combinar dados
- Combinar esses recursos em cenários reais
Exemplo 1 — Dados vindos de uma API
Imagine um objeto retornado por uma API, onde nem todas as informações são garantidas:
const respostaApi = { usuario: { nome: "Daniel" } }; Acessando dados com segurança:
const cidade = respostaApi.usuario?.endereco?.cidade ?? "Cidade não informada";
console.log(cidade); // Saída será "Cidade não informada"
Exemplo 2 — Configurações do sistema
Suponha que um sistema tenha configurações opcionais:
const config = { tema: "dark", itensPorPagina: 0 }; Definindo valores padrão corretamente:
const itens = config.itensPorPagina ?? 10;
console.log(itens); // Saída será 0
Aqui, 0 é um valor válido e não deve ser substituído.
Exemplo 3 — Atualizando objetos com Spread Operator
Imagine que você precise atualizar dados de um usuário sem alterar o objeto original:
const usuario = { nome: "Daniel", idade: 30 }; const usuarioAtualizado = { ...usuario, idade: 31 };
console.log(usuario);
// Saída será { nome: "Daniel", idade: 30 }
console.log(usuarioAtualizado);
// Saída será { nome: "Daniel", idade: 31 }
Exemplo 4 — Juntando dados de formulários
Muito comum em formulários web:
const dadosPessoais = { nome: "Ana", email: "ana@email.com" };
const endereco = {
cidade: "São Paulo",
estado: "SP"
};
const cadastroCompleto = {
...dadosPessoais,
...endereco
};
console.log(cadastroCompleto);
// Saída será { nome: "Ana", email: "ana@email.com
", cidade: "São Paulo", estado: "SP" }
Exemplo 5 — Funções com dados opcionais
Função que recebe um objeto de opções:
function criarMensagem(opcoes) { const nome = opcoes?.nome ?? "Visitante"; const idade = opcoes?.idade ?? "não informada";
return nome + " tem idade " + idade;
}
console.log(criarMensagem({ nome: "Carlos", idade: 25 }));
// Saída será "Carlos tem idade 25"
console.log(criarMensagem({ nome: "Maria" }));
// Saída será "Maria tem idade não informada"
console.log(criarMensagem());
// Saída será "Visitante tem idade não informada"
if. Resumo mental: quando usar cada um
?.→ quando algo pode não existir??→ quandonullouundefinedsão esperados...→ quando precisa copiar ou combinar dados
Resumo da aula para nunca mais esquecer
- Optional Chaining evita erros ao acessar dados incertos
- Nullish Coalescing define valores padrão corretamente
- Spread Operator copia e combina estruturas
- Esses recursos são muito usados juntos em código real
Na próxima aula, vamos entrar em um novo capítulo do JavaScript e entender assincronicidade: como o JavaScript lida com tarefas que não acontecem imediatamente.
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?
Final Fantasy
O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.
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.
Mega Man
A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.
Música tema do Blanka
Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.
Galaxy Game
As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.










