JavaScript/Fundamentos/let, const, var
JavaScript⏱ ~2 min de leitura

let, const, var

Declarando variáveis modernamente

JavaScript tem três formas de declarar variáveis: var (legado, escopo de função, sofre hoisting), let (moderno, escopo de bloco, não pode ser redeclarado) e const (moderno, escopo de bloco, não pode ser reatribuído). Na prática, use const por padrão e let quando precisar reatribuir — nunca use var em código moderno.

Escopo de bloco significa que a variável existe apenas dentro do bloco {} onde foi declarada — dentro de um if, for ou qualquer par de chaves. Já var vaza para fora desses blocos, o que causa bugs sutis. let e const foram introduzidos no ES6 (2015) para resolver esse problema.

Um detalhe importante: const não torna o valor imutável para objetos e arrays — apenas impede a reatribuição da variável. Um const objeto = {} permite object.nome = "Maria" porque o objeto em si não muda, só uma propriedade dele. Para imutabilidade real de objetos, use Object.freeze().

Exemplo.java
// ── var (legado — evite!) ─────────────────────────
var nome = "Ana";
if (true) {
  var nome = "Carlos"; // vaza para fora do if!
}
console.log(nome); // "Carlos" — surpreendente e perigoso

// ── let: escopo de bloco ──────────────────────────
let contador = 0;
if (true) {
  let contador = 99; // variável DIFERENTE, local ao bloco
}
console.log(contador); // 0 — correto!

// ── const: preferência padrão ─────────────────────
const PI = 3.14159;
// PI = 3; // ❌ TypeError: Assignment to constant variable

const pessoa = { nome: "Ana" };
pessoa.nome = "Carlos"; // ✅ permitido — obj em si não muda
// pessoa = {};          // ❌ não pode reatribuir a variável

// ── Regras práticas ──────────────────────────────
// 1. Use const por padrão
// 2. Use let quando precisar reatribuir (contador, acumulador)
// 3. Nunca use var
💡 Dica pro

Use const sempre que possível — comunica "esse valor não vai mudar" para quem lê o código. O JavaScript moderno bem escrito tem muito mais const do que let, e zero var.

Recompensa+20 XP+exercícios