Pular para o conteúdo
Cursos

DevClub

LógicaFront-endBack-endMobile

IA Club

IA na prática
Estudar programaçãoEstudar IA

Aula 2 de 6

Modele o estado com variáveis e tipos de dado

Dê nomes às informações, diferencie número, texto e booleano e rastreie uma variável para impedir concatenação acidental.

30 minutos · leitura + prática · nível iniciante

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:

text
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 SE

As 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.

js
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.

Pronto para testar
Resultado

Pare e pense

Por que um valor digitado como 200 pode produzir 1500200 ao somar com 1500?

Escolha uma resposta
Missão da aula

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 →