JavaScript: Variáveis em JavaScript
Última atualização: 2026-10-13
Variáveis são caixas para armazenar dados — você rotula cada caixa com um nome, depois coloca dados dentro, tira dados ou troca a qualquer momento.
1. O Que São Variáveis
Imagine uma fileira de caixas rotuladas: uma chamada "nome" guarda "João", outra chamada "idade" guarda 25. O conteúdo pode mudar, mas o rótulo permanece o mesmo — isso é uma variável.
Em JS, você cria variáveis usando palavras-chave de declaração (var / let / const) e atribui valores com o sinal de igual:
<script>
var nome = "João";
let idade = 25;
const PI = 3.14;
</script>
var era a única maneira de declarar variáveis antes do ES6. Ela tem dois comportamentos que causam dor de cabeça:
- Escopo de função — uma variável declarada com
vardentro de um blocoifouforé acessível fora dele, o que é contra-intuitivo - Hoisting — declarações
varsão "elevadas" ao topo do seu escopo, mas as atribuições não são. Você pode usar uma variável antes da declaração (seu valor seráundefined) sem erros, o que leva a bugs sutis
Esses dois comportamentos fazem do var um terreno fértil para bugs. No JS moderno, var foi amplamente substituído por let e const.
3. let — Escopo de Bloco, Padrão Recomendado
let foi introduzido no ES6 (2015) e corrige ambos os problemas do var:
- Escopo de bloco — acessível apenas dentro de
{}, não pode ser acessado fora do bloco - Sem hoisting — usar uma variável antes da declaração lança um erro (zona morta temporal)
No dia a dia do desenvolvimento, use let para variáveis que precisam ser reatribuídas.
4. const — Constantes, Não Podem Ser Reatribuídas
const também tem escopo de bloco, mas deve ser atribuída na declaração e não pode ser reatribuída depois.
Nota: const restringe "reatribuição", não "mutação". Se um const guarda um objeto ou array, você pode modificar propriedades do objeto ou elementos do array — só não pode apontar a variável para um objeto diferente.
Use const por padrão; mude para let quando precisar reatribuir — esta é a boa prática.
5. Regras de Nomenclatura de Variáveis
- Deve começar com uma letra, sublinhado
_ou cifrão$ - Caracteres subsequentes podem ser letras, dígitos, sublinhados ou cifrões
- Não pode começar com dígito
- Não pode usar palavras-chave do JS (
var,let,function, etc.) - camelCase é recomendado:
primeiroNome,precoTotal
6. Declarando Múltiplas Variáveis
Você pode declarar múltiplas variáveis de uma vez, separadas por vírgulas:
<script>
let a = 1, b = 2, c = 3;
</script>
No entanto, para melhor legibilidade, uma variável por linha é preferível.
▶ Exemplo: Hoisting e Escopo de Função do var
▶ Experimente▶ Exemplo: Escopo de Bloco do let
▶ Experimente▶ Exemplo: Constantes com const
▶ Experimente▶ Exemplo: Comparação var / let / const
▶ Experimente❓ Perguntas Frequentes
person acidentalmente para um objeto diferente, mas modificar propriedades existentes do objeto é perfeitamente possível. É como trancar o rótulo de uma caixa (esta caixa é sempre "caixa do João"), mas você pode colocar o que quiser dentro.📖 Resumo
- Variáveis são caixas para armazenar dados, criadas com uma palavra-chave de declaração + nome da variável + atribuição
vartem escopo de função e problemas de hoisting — evite-o no JS modernolettem escopo de bloco e sem hoisting — use quando reatribuição for necessáriaconsttem escopo de bloco e não pode ser reatribuído — deve ser atribuído na declaraçãoconstprevine reatribuição, mas propriedades/elementos de objetos/arrays ainda podem ser modificados- Prioridade: const primeiro, let segundo, evitar var
📝 Exercícios
- Básico: Declare uma constante
NOME_SITEcom seu nome usandoconst, e uma variávelcontagemVisitascom valor 0 usandolet, depois exiba ambos os valores na página. - Intermediário: Crie uma página com um botão que simula um "contador de visitas" — cada clique incrementa
contagemVisitasem 1 e exibe o valor atual. Observe comoletpermite reatribuição enquantoconstnão. - Desafio: Crie uma página com um objeto constante
aluno{ nome: "João", notas: [80, 90, 75] }. Depois adicione uma nova nota de 85, calcule a média e altere o nome para "Maria" — tudo sem reatribuir o const, provando que o conteúdo do objeto pode ser modificado.