Sobes.tech
Junior

O que é o escopo (scope) das variáveis em JavaScript?

sobes.tech IA

Resposta da IA

O âmbito define a disponibilidade de variáveis, funções e objetos numa parte específica do código.

Em JavaScript, existem vários tipos de âmbito:

  • Âmbito global (Global Scope): Variáveis declaradas fora de qualquer função ou bloco estão acessíveis de qualquer parte do código.
  • Âmbito de função (Function Scope): Variáveis declaradas dentro de uma função (antes do ES6) estão acessíveis apenas dentro dessa função e das funções aninhadas.
  • Âmbito de bloco (Block Scope): Variáveis declaradas com let e const dentro de blocos (por exemplo, {} ou ciclos) estão acessíveis apenas dentro desse bloco.

Exemplo:

// Âmbito global
let globalVar = "Sou global";

function someFunction() {
  // Âmbito de função (antes do ES6)
  var functionVar = "Estou dentro da função";
  console.log(globalVar); // Variável global acessível

  if (true) {
    // Âmbito de bloco (para let e const)
    let blockVar = "Estou dentro do bloco";
    console.log(functionVar); // Variável de função acessível
    console.log(blockVar); // Variável de bloco acessível
  }

  // console.log(blockVar); // Erro: blockVar não acessível aqui
}

someFunction();
// console.log(functionVar); // Erro: functionVar não acessível aqui

Palavras-chave para declarar variáveis e seu impacto na abrangência:

Palavra-chave Âmbito antes do ES6 Âmbito após o ES6
var Funcional Funcional
let - De bloco
const - De bloco

Compreender o âmbito é fundamental para evitar conflitos de nomes de variáveis e para escrever código limpo e previsível.