## glossário

O que é Variáveis?

Variável é um espaço de memória identificado por um nome, usado para armazenar um valor que pode ser consultado e — dependendo da declaração — alterado durante a execução do programa. É o conceito mais fundamental de qualquer linguagem de programação.

A analogia mais usada é a da caixa etiquetada: você guarda algo dentro e usa a etiqueta para encontrar depois. A etiqueta é o nome; o conteúdo é o valor.

Declaração em JavaScript: var, let e const

Três palavras-chave com comportamentos distintos
var antigo = 'escopo de função, evite em código novo';

let contador = 0;      // pode ser reatribuída
contador = 1;          // válido

const TAXA = 0.15;     // não pode ser reatribuída
TAXA = 0.2;            // TypeError

// atenção: const impede reatribuir, não mutar
const lista = [1, 2];
lista.push(3);         // válido — o array mudou
lista = [4];           // TypeError — a variável, não

Aquela última distinção confunde muita gente. const congela a ligação entre o nome e o valor, não o conteúdo do objeto. Para tornar o objeto imutável de fato, é preciso Object.freeze() ou estruturas imutáveis.

Escopo: onde a variável existe

  • Escopo global — acessível de qualquer lugar. Evite: gera colisões de nome e acoplamento difícil de rastrear.
  • Escopo de função — o que var respeita; a variável vive na função inteira, mesmo declarada dentro de um bloco.
  • Escopo de bloco — o que let e const respeitam; a variável existe apenas entre as chaves onde foi declarada.
A diferença prática entre var e let
for (var i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 0);
}
// imprime 3, 3, 3 — todos compartilham a mesma variável

for (let j = 0; j < 3; j++) {
  setTimeout(() => console.log(j), 0);
}
// imprime 0, 1, 2 — cada iteração tem seu próprio j

Tipagem: estática ou dinâmica

Em linguagens de tipagem dinâmica como JavaScript e Python, a variável não declara tipo e pode receber valores de tipos diferentes ao longo da execução. Em linguagens de tipagem estática como Java, Go e TypeScript, o tipo é declarado ou inferido e verificado antes de rodar — o que transforma erros de execução em erros de compilação.

Boas práticas de nomeação

Prefira nomes que descrevam o conteúdo, não o tipo: usuariosAtivos comunica mais que arr. Use const por padrão e só troque para let quando a reatribuição for realmente necessária — isso sinaliza intenção a quem lê. E evite abreviações que só fazem sentido para quem escreveu. O tema se conecta diretamente a lógica de programação e estrutura de dados.

## faq

Perguntas frequentes

Devo usar let ou const?

Use const por padrão. Se o linter ou o compilador reclamar que a variável precisa ser reatribuída, troque para let. Isso deixa explícito quais valores mudam ao longo da execução e reduz uma classe de erros por alteração acidental.

Por que não usar var?

Porque seu escopo de função gera comportamentos contraintuitivos, especialmente dentro de laços e blocos condicionais. Ela também permite redeclaração silenciosa do mesmo nome. let e const, introduzidos no ES6, resolvem ambos os problemas.

Qual a diferença entre variável e constante?

Variável admite alteração do valor durante a execução; constante não pode ser reatribuída depois de definida. Em JavaScript, const cria uma constante de ligação — o nome não pode apontar para outro valor, embora objetos e arrays atribuídos a ela ainda possam ser modificados internamente.