Variáveis no Javascript: Variáveis são os alicerces de qualquer programa JavaScript, atuando como rótulos simbólicos para valores armazenados na memória. Entender como e onde declará-las — usando var, let e const — é a chave para escrever código previsível e livre de bugs.
Neste artigo, exploraremos a diferença crucial entre as três formas de declaração e como o conceito de Escopo afeta a visibilidade do seu código.
1. As Três Formas de Declaração
A principal diferença entre let, const e var reside em duas características: Reatribuição e Escopo.
A. const (Constante)
- Propósito: Declara um valor que não pode ser reatribuído após a inicialização.
- Escopo: Escopo de Bloco (a variável só existe dentro das chaves
{}). - Recomendação: Use
constpor padrão.
JavaScript
const PI = 3.14;
// PI = 3.14159; // ERRO: Não pode reatribuir a PI
const array = [1, 2];
array.push(3); // Isso é permitido! (O valor do array é mutável, mas a variável 'array' não pode apontar para outro array)
// array = [1, 2, 3]; // ERRO: Tentativa de reatribuição da constante.
B. let (Variável Mutável)
- Propósito: Declara uma variável cujo valor pode ser reatribuído.
- Escopo: Escopo de Bloco (a variável só existe dentro das chaves
{}). - Recomendação: Use
letapenas quando o valor da variável precisar mudar (ex: contadores em loops).
JavaScript
let contador = 0;
contador = 1; // Permitido: Reatribuição.
C. var (Legado)
- Propósito: Forma original de declarar variáveis.
- Escopo: Escopo de Função (ou Global), NUNCA Escopo de Bloco.
- Recomendação: Evite usar
varem códigos modernos para prevenir erros de escopo (principalmente o hoisting problemático).
2. Entendendo o Escopo
O Escopo define a visibilidade e o tempo de vida de uma variável no seu programa.
A. Escopo de Bloco (let e const)
O escopo de bloco é a forma moderna e mais segura de isolar variáveis. Variáveis declaradas com let ou const só são acessíveis dentro do bloco de código onde foram definidas (entre as chaves {}).
JavaScript
function calcular() {
let resultado = 0; // Escopo de Função
if (true) {
const TAXA = 0.1; // Escopo de Bloco
resultado = 100 * TAXA;
console.log(resultado); // Acessível: 10
}
// console.log(TAXA); // ERRO: TAXA está fora do escopo de bloco do 'if'.
console.log(resultado); // Acessível: 10
}
B. Escopo de Função (var)
Variáveis declaradas com var dentro de uma função são limitadas a essa função, mas vazam para fora de qualquer bloco interno (if, for, while).
JavaScript
function exemploVar() {
if (true) {
var item = "Visível"; // Escopo de Função, não de Bloco!
}
console.log(item); // Acessível: "Visível" (Comportamento inesperado/indesejado)
}
3. Hoisting
Hoisting é o comportamento do JavaScript de move as declarações de variáveis e funções para o topo do seu escopo antes da execução do código.
var: O JavaScript move a declaração e a inicializa comoundefined.let/const: O JavaScript move apenas a declaração, mas NÃO a inicializa.
JavaScript
console.log(legado); // Saída: undefined (Hoisting com inicialização)
var legado = "Var iça e inicializa.";
// console.log(moderno); // ERRO de Referência (A variável foi içada, mas não inicializada.)
let moderno = "Let iça, mas não inicializa.";
O comportamento de let e const evita que você acesse variáveis antes que elas sejam definidas, resultando em códigos mais previsíveis e fáceis de depurar.
✅ Conclusão Variáveis no Javascript
Variáveis são a base da gestão de dados em JS. A escolha entre const e let não é apenas sobre estilo, mas sobre segurança e previsibilidade do código, graças ao Escopo de Bloco. A regra de ouro é: use const por padrão e só mude para let quando a reatribuição for estritamente necessária. Evite var para prevenir confusão com hoisting e escopo.
Toda jornada tem um início, e o início para se tornar um desenvolvedor web é dominar as seguintes tecnologias, que você encontra aqui mesmo:
E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:












