Variáveis no Javascript

Javascript
Tempo de leitura: 4 minutos

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 const por 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 let apenas 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 var em 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 como undefined.
  • 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:

HTML
HTML
CSS
CSS
Javascript
JavaScript

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:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.