3  Variáveis e Tipos

Variável é um espaço na memória usado para armazenar dados durante a execução do programa.

Em JavaScript, variáveis servem para guardar valores que podem ser usados, combinados e transformados ao longo do programa. Entender bem como declarar e manipular variáveis evita muitos erros comuns em código iniciante.

3.1 let, const e var

  • let: valor pode mudar.
  • const: valor não pode ser reatribuído.
  • var: forma antiga, evite em novos projetos.

Quando possível, prefira const. Isso ajuda a deixar claro o que nao deve mudar. Use let quando a variavel realmente precisar ser atualizada.

let idade = 16;
const escola = "Escola Técnica";

idade = 17;

console.log(idade);
console.log(escola);

3.1.1 Escopo (onde a variavel existe)

  • let e const tem escopo de bloco: so existem dentro de chaves { }.
  • var tem escopo de funcao: pode vazar para fora de blocos e causar bugs.
if (true) {
    let dentro = "ok";
    var fora = "opa";
}

// console.log(dentro); // erro: dentro nao existe aqui
console.log(fora); // funciona, mas e perigoso

3.1.2 Reatribuicao vs. mutacao

const impede reatribuicao, mas nao impede mutar objetos e arrays.

const aluno = { nome: "Joao", nota: 8 };
aluno.nota = 9; // ok

// aluno = { nome: "Maria" }; // erro

3.2 Regras de nome de variáveis

  1. Comece com letra, _ ou $.
  2. Não use espaços.
  3. Evite nomes genéricos como x, y, z em projetos reais.
  4. Use nomes claros: notaFinal, valorTotal, nomeAluno.

Boas praticas:

  • Use camelCase em nomes de variaveis e funcoes.
  • Evite abreviacoes confusas.
  • Prefira nomes que indiquem o papel do dado: quantidadeItens, estaAtivo.

3.3 Tipos primitivos

  • string (texto)
  • number (número)
  • boolean (true ou false)
  • null
  • undefined
  • bigint
  • symbol

Outros tipos importantes:

  • object: estruturas como arrays, objetos e datas.
  • function: funcoes tambem sao valores.
const nome = "Ana";
const nota = 8.5;
const aprovado = true;

console.log(typeof nome);     // string
console.log(typeof nota);     // number
console.log(typeof aprovado); // boolean

3.3.1 null vs undefined

  • undefined: valor nao definido (variavel declarada mas sem valor).
  • null: valor vazio definido pelo programador.
let resultado;
const vazio = null;

console.log(resultado); // undefined
console.log(vazio); // null

Curiosidade: typeof null retorna object por um detalhe historico.

3.4 Conversão de tipos

Quando um valor de texto precisa virar numero, use Number. Para conversoes mais tolerantes, use parseInt ou parseFloat.

const textoNumero = "42";
const numero = Number(textoNumero);

console.log(numero + 8); // 50
console.log(parseInt("12px", 10)); // 12
console.log(parseFloat("10.5em")); // 10.5

Outras conversões úteis:

console.log(String(150));     // "150"
console.log(Boolean(1));      // true
console.log(Boolean(0));      // false

3.4.1 Valores truthy e falsy

Em condicoes, alguns valores sao considerados false:

  • false, 0, "", null, undefined, NaN

Todo o resto e true.

3.5 NaN e validação de número

NaN significa “Not a Number”, quando uma operação numérica falha.

const entrada = "abc";
const valor = Number(entrada);

console.log(valor); // NaN
console.log(Number.isNaN(valor)); // true

Use Number.isNaN para validar numeros depois de conversoes. isNaN global pode confundir porque converte tipos antes de testar.

3.6 Template strings

Template string usa crase para montar frases com variáveis.

const aluno = "Carlos";
const media = 7.8;
console.log(`Aluno: ${aluno} | Média: ${media}`);

Template strings tambem permitem quebrar linhas com facilidade:

const aviso = `Aluno: ${aluno}
Media: ${media}`;
console.log(aviso);

3.7 Precisao de numeros

JavaScript usa ponto flutuante, entao algumas somas nao ficam exatas.

console.log(0.1 + 0.2); // 0.30000000000000004

Em valores de dinheiro, prefira trabalhar em centavos (inteiros) e formatar no final.

3.8 Exemplo prático: orçamento de passeio

const transporte = 50;
const alimentacao = 45;
const ingresso = 30;

const total = transporte + alimentacao + ingresso;
console.log(`Custo total do passeio: R$ ${total}`);

3.9 Exemplo prático: situação do estudante

const faltas = 12;
const limite = 15;
const podeFaltarMais = faltas < limite;

console.log(`Pode faltar mais? ${podeFaltarMais}`);

3.10 Exercícios

  1. Declare variáveis para nome, idade e cidade e exiba no console.
  2. Converta a string "150" para número e some com 25.
  3. Crie uma mensagem com template string informando produto e preço.
  4. Crie um programa que receba preço e quantidade e exiba o total.
  5. Desafio: leia uma string numérica e valide se a conversão resultou em número válido.