javascript

Diferenças entre const, let e var em JavaScript

Em JavaScript, existem três formas de declarar variáveis: constlet e var. Cada uma tem comportamentos distintos em relação a escopohoisting e reatribuição. Este guia completo explica as diferenças e quando usar cada uma delas.

1. var (versão ES5 do JavaScript e versões anteriores)

  • Escopo de função (não tem escopo de bloco)
  • Pode ser redeclarada e reatribuída
  • Sofre hoisting (é movida para o topo do escopo)
				
					function exemploVar() {
    if (true) {
        var x = 10;
    }
    console.log(x); // 10 (vazamento de escopo)
}
exemploVar();
				
			
Problemas com ‘var
  • Vaza do bloco (pode causar bugs)

  • Permite redeclaração (risco de sobrescrever variáveis)

2. let (versão ES6+ do JavaScript)

  • Escopo de bloco (não vaza para fora de {})
  • Pode ser reatribuída, mas não redeclarada
  • Tem hoisting, mas não é inicializada (evita erros)
				
					function exemploLet() {
    if (true) {
        let y = 20;
        console.log(y); // 20
    }
    console.log(y); // ReferenceError: y is not defined
}
exemploLet();
				
			
Quando Usar ‘let
  • Em loops (forwhile)

  • Quando o valor precisa ser alterado

3. const (versão ES6+ do JavaScript)

  • Escopo de bloco (igual ao let)
  • Não pode ser reatribuída nem redeclarada
  • Valor imutável (para tipos primitivos)
  • Objetos/arrays podem ter propriedades alteradas
				
					const PI = 3.14;
PI = 3.1415; // TypeError: Assignment to constant variable

// Mas em objetos/arrays:
const pessoa = { nome: "João" };
pessoa.nome = "Maria"; // Funciona!
				
			
Quando Usar ‘const
  • Para constantes matemáticas (PIGRAVIDADE)

  • Em imports (import const module from 'module')

  • Sempre que possível (boa prática moderna)

Comparação Direta

Característicavarletconst
EscopoFunçãoBlocoBloco
HoistingSimSim*Sim*
RedeclaraçãoSimNãoNão
ReatribuiçãoSimSimNão
Uso ModernoEvitarModeradoPreferir
* Hoisting é um comportamento do JavaScript que move declarações de variáveis e funções para o topo do escopo durante a compilação. Isso permite que essas declarações sejam usadas antes de serem declaradas no código.

Conclusão

  • const: Ideal para 90% dos casos (imutabilidade)

  • let: Use quando precisar reatribuir valores

  • var: Evite (legado, causa bugs)

Adotar const e let melhora a legibilidade e reduz erros em JavaScript moderno. 

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *