0Pricing
Frontend Academy · Aula

Variáveis: let, const, var e escopo

Declare variáveis com let, const e var. Entenda o escopo de bloco, o escopo de função e por que const é preferível para a maioria dos valores.

Variáveis: let, const, var e escopo é uma aula grátis de Frontend Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Frontend Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Frontend Academy inclui 4 aulas no total.

Por que usar variáveis?

As variáveis armazenam valores para que você possa reutilizá-los, atualizá-los e dar-lhes nomes significativos. JavaScript oferece três formas de declarar variáveis: var (antiga), let (moderna, que pode ser reatribuída) e const (moderna, com vinculação constante).

const — a escolha padrão

Declare com const quando não for reatribuir a variável. Isso indica sua intenção e evita reatribuições acidentais. Observação: const impede a revinculação, mas não torna objetos ou matrizes imutáveis.

const name = 'Alice';        // can't reassign
const PI = 3.14159;

const user = { age: 25 };    // object is mutable
user.age = 26;               // OK — property change, not rebinding
// user = {};               // Error — can't reassign const

let — quando você precisa reatribuir

Use let quando o valor for mudar: contadores de laços, somas acumuladas e variáveis de estado. let tem escopo de bloco — ele só existe dentro do { } delimitador mais próximo.

let score = 0;
score = score + 10;  // OK

for (let i = 0; i < 3; i++) {
  console.log(i);     // 0, 1, 2
}
// console.log(i);   // ReferenceError — i is out of scope

var — a declaração legada

var tem escopo de função (não escopo de bloco) e é elevada ao topo da função. Isso causa erros sutis. Evite var no JavaScript moderno; prefira const e let.

function example() {
  if (true) {
    var x = 5;   // function-scoped, not block-scoped
  }
  console.log(x); // 5 — still accessible here!
}

Escopo: onde as variáveis vivem

Escopo global: declarado fora de qualquer função ou bloco, acessível em todos os lugares. Escopo de função: declarado dentro de uma função, acessível apenas dentro dela. Escopo de bloco: let/const dentro de { }, acessível apenas dentro desse bloco.

Elevação

Elevação move as declarações para o topo do escopo durante a compilação. As declarações var são elevadas e inicializadas como undefined. let e const são elevadas, mas não inicializadas — acessá-las antes da declaração causa um erro de Zona Morta Temporal.

Nomeando variáveis

Use nomes descritivos. Use camelCase para variáveis e funções (userName), UPPER_SNAKE_CASE para constantes (MAX_RETRIES) e PascalCase para classes (UserProfile). Evite letras únicas, exceto em laços (i, j).

Declarando várias variáveis

Você pode declarar várias variáveis em uma única instrução, mas geralmente é mais claro usar uma declaração por variável. Evite a forma com vírgulas, pois ela pode ocultar o escopo e os tipos.

// Less clear:
let a = 1, b = 2, c = 3;

// Preferred:
const MAX = 10;
let count = 0;
const label = 'Score';

A Zona Morta Temporal (TDZ)

Acessar uma variável let ou const antes de sua declaração no código gera um ReferenceError. Essa zona entre o início do bloco e a declaração é chamada de TDZ.

console.log(value); // ReferenceError: Cannot access 'value' before initialization
const value = 42;

const com matrizes e objetos

const impede a reatribuição da variável, mas o valor referenciado ainda pode ser alterado. Use Object.freeze() para obter um objeto imutável superficial ou padrões imutáveis para obter imutabilidade profunda.

const items = [1, 2, 3];
items.push(4);       // OK — mutates the array
items = [];          // Error — can't reassign const

const config = Object.freeze({ maxAge: 30 });
config.maxAge = 99;  // Silently fails in non-strict mode

Por que preferir const a let?

Usar const por padrão facilita a compreensão do código: você sabe que a variável não será reatribuída em outro lugar. Só passe para let quando realmente precisar reatribuir. Esse hábito reduz erros e melhora a legibilidade.

Verificação rápida

Qual é a principal diferença entre let e var?

Recapitulação: variáveis e escopo

Prefira const para valores que não serão reatribuídos. Use let para valores mutáveis. Evite var. O escopo de bloco (let/const) mantém as variáveis contidas. Na elevação: var é inicializada como undefined, enquanto let/const gera um erro de TDZ se for acessado cedo demais.

Perguntas Frequentes

A aula “Variáveis: let, const, var e escopo” é grátis?

Sim — o texto completo de “Variáveis: let, const, var e escopo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Frontend Academy, atualize para CoddyKit PRO. O curso de Frontend Academy inclui 4 aulas no total.

O que vou aprender em “Variáveis: let, const, var e escopo”?

Declare variáveis com let, const e var. Entenda o escopo de bloco, o escopo de função e por que const é preferível para a maioria dos valores. Você pratica Frontend Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Frontend Academy?

Nenhuma experiência prévia é necessária. Frontend Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Variáveis: let, const, var e escopo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Frontend Academy?

Sim. Cada aula de Frontend Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Variáveis: let, const, var e escopo
  2. Tipos de dados: string, number, boolean, null e undefined
  3. Funções: declarações, expressões e funções de seta
  4. Fluxo de controle: if, else, switch, for e while
← Voltar para Frontend Academy