Ao terminar esta aula, você vai conseguir
- Escolher nomes que expressem papel e unidade
- Diferenciar número, texto e booleano pelo uso
- Rastrear mudanças de valor e tipo
Variável é um nome associado a um valor durante a execução. Tipo descreve o comportamento desse valor nas operações. Nesta aula, você vai modelar uma carteira de créditos e rastrear o momento em que uma entrada textual poderia mudar uma soma para concatenação.
Pense numa etiqueta: saldoEmCentavos identifica a informação e 150000 é o valor atual. A analogia ajuda a separar nome e conteúdo, mas termina aí. JavaScript não promete uma caixa física para cada variável, e dois nomes podem apontar para o mesmo objeto.
Declare o estado antes de traduzi-lo
O pseudocódigo precisa registrar unidade e conversão:
SALDO_EM_REAIS recebe 1500
DEPOSITO_DIGITADO recebe "200"
DEPOSITO recebe converter DEPOSITO_DIGITADO para número
SE DEPOSITO não for número válido
INFORMAR entrada inválida
SENÃO
SALDO_FINAL recebe SALDO_EM_REAIS mais DEPOSITO
INFORMAR SALDO_FINAL
FIM SEAs aspas em "200" indicam texto. A conversão é uma etapa do algoritmo, não um detalhe que a linguagem deveria adivinhar.
Escolha tipo pelo uso
Quantidade, preço e nota participam de contas, então são números. Nome e CEP são texto; você não soma CEPs e precisa preservar zero inicial. Aprovação responde sim ou não, então é booleano.
const nome = 'Aline';
const cep = '01310100';
const media = 8;
const aprovado = true;
console.log(typeof nome, typeof cep, typeof media, typeof aprovado);No Node v26.3.0, a saída é string string number boolean. O tipo não nasce da aparência; nasce das operações válidas para o dado.
Nomes também registram contrato. saldoEmCentavos impede confundir 1.500 reais com 1.500 centavos. dataEmIso distingue texto padronizado de objeto de data. Um nome honesto reduz comentários e misturas silenciosas.
Leia atribuição da direita para a esquerda
Em saldo = saldo + 200, o programa lê o valor antigo, soma e associa o resultado ao nome. Não é uma igualdade matemática. Faça uma tabela com uma linha depois de cada atribuição.
Comece em 1.500, some 200, subtraia 100 e anote 1.600. Depois rode. Se a execução mostrar 1500200, pare na primeira operação: o depósito continuou como string. Não tente corrigir a subtração posterior.
No laboratório, troque '200' por 'duzentos'. A validação deve lançar TypeError: Depósito inválido. Essa mensagem prova que o dado parou na fronteira antes de contaminar o saldo. Depois use '0'; zero é valor válido e não pode ser confundido com ausência.
Const e let comunicam mudança
Use const quando o nome não será reatribuído. Use let quando o próprio estado evolui, como contador ou acumulador. const não congela automaticamente um objeto; ela protege a associação do nome.
O erro comum é mudar tipo no meio do processo porque a linguagem permite. Permissão não é intenção. Se saldo começa número e vira texto, quem chama a próxima função recebe um contrato diferente sem aviso.
Sua missão é construir um boletim com nomes descritivos e registrar, para cada variável, valor de exemplo, tipo e unidade. O critério é prever todos os typeof, testar uma nota digitada como texto e convertê-la uma única vez na entrada. Na próxima aula, esses valores entrarão em expressões e decisões.
Laboratório ao vivo
Rastreio do saldo da carteira
Leia o pseudocódigo comentado, altere o depósito digitado e mantenha o saldo numérico. Observe tipo e valor depois de cada operação.
Pare e pense
Por que um valor digitado como 200 pode produzir 1500200 ao somar com 1500?
Campos e argumentos podem chegar como texto. Converter e validar na entrada preserva a soma numérica no processamento.
Faça sem copiar
Modele nome, três notas, faltas e aprovação de um aluno. Anote tipo e unidade, execute dois casos e confirme que nenhuma nota vira string.
Fontes para consultar
Terminou a missão?
Marque apenas quando você conseguir explicar o conceito e concluir o desafio. O progresso fica salvo somente neste navegador.
Próxima: Construa expressões, condições e casos de borda →