0Pricing
JavaScript Academy · Aula

Escopo de bloco, função e módulo e a TDZ

Entenda o escopo de bloco, função e módulo; veja a TDZ em ação e evite o vazamento de variáveis.

Escopo de bloco, função e módulo e a TDZ é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 2 de 3. 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 JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

Introdução

Objetivo: Saiba onde as variáveis vivem e quando podem ser usadas.

  • Escopo de bloco (let/const)
  • Escopo de função (var)
  • Escopo de módulo
  • Segurança com TDZ
Escopo de bloco, função e módulo e a TDZ — ilustração 1

Demonstração do escopo de bloco

O escopo de bloco mantém as variáveis locais a um par de chaves.

// Block scope: let/const exist only inside the braces
let lives = 3;

if (true) {
  const bonus = 5;
  let level = 1;
  console.log("Inside block:", bonus, level);
}

console.log("Lives:", lives);
// Uncommenting next line would fail (not in scope):
// console.log(bonus, level);
Escopo de bloco, função e módulo e a TDZ — ilustração 2

Escopo de função com var

var tem escopo de função, não de bloco. Prefira let/const no JS moderno.

// Function scope: var is visible across the whole function
function demo() {
  if (true) {
    var x = 10; // function-scoped
  }
  console.log("x is visible here:", x); // 10
}
demo();
Escopo de bloco, função e módulo e a TDZ — ilustração 3

Noções básicas do escopo de módulo

Escopo de módulo: as vinculações do nível superior são locais ao arquivo (módulos ES).

// Module scope: top-level variables are local to the module file
const appName = "CoddyKit";
console.log("App name:", appName);

// In a real project, this would be its own file/module.
// Other files must import to access appName.
Escopo de bloco, função e módulo e a TDZ — ilustração 4

Zona morta temporal

TDZ evita leituras antecipadas acidentais. Declare primeiro e use depois.

// TDZ: using let/const before declaration throws ReferenceError
try {
  // Uncommenting would trigger TDZ:
  // console.log(mode); // ReferenceError
  let mode = "dark";
  console.log("Mode after declare:", mode);
} catch (e) {
  console.log("Caught:", e.message);
}
Escopo de bloco, função e módulo e a TDZ — ilustração 5

Armadilhas do escopo

Armadilhas:

  • Não misture var com let/const no mesmo escopo.
  • Declare perto do uso.
  • Evite ler valores antes da linha de declaração (TDZ).
Escopo de bloco, função e módulo e a TDZ — ilustração 6

Quiz sobre TDZ

Verificação rápida: comportamento da TDZ.

Escopo de bloco, função e módulo e a TDZ — ilustração 7

Recapitulação

Recapitulação: let/const têm escopo de bloco; var tem escopo de função; os módulos têm seu próprio escopo de arquivo; a TDZ impede o acesso antecipado.

Escopo de bloco, função e módulo e a TDZ — ilustração 8

Perguntas Frequentes

A aula “Escopo de bloco, função e módulo e a TDZ” é grátis?

Sim — o texto completo de “Escopo de bloco, função e módulo e a TDZ” é 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 JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “Escopo de bloco, função e módulo e a TDZ”?

Entenda o escopo de bloco, função e módulo; veja a TDZ em ação e evite o vazamento de variáveis. Você pratica JavaScript 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 JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript 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 2 de 3.

Quanto tempo leva a aula “Escopo de bloco, função e módulo e a TDZ”?

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 JavaScript Academy?

Sim. Cada aula de JavaScript 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. let, const e como evitar var
  2. Escopo de bloco, função e módulo e a TDZ
  3. Nomenclatura, legibilidade e armadilhas comuns
← Voltar para JavaScript Academy