Escopos em JavaScript

Escopos em JavaScript são um conceito fundamental para entender como a visibilidade e a acessibilidade das variáveis ​​são gerenciadas no seu código.

Tipos de escopos: Link to heading

###Âmbito global:

  • É o escopo mais amplo.
  • Variáveis ​​declaradas com var (atualmente não recomendado), let ou const dentro do código principal têm escopo global.

Exemplo: Link to heading

var globalVar = "Eu sou global";

function saudar() {
    console.log(globalVar); // Pode acessar a variável global
}

saudar();
console.log(globalVar); // Pode ser acessado de qualquer lugar no código

Escopo da função: Link to heading

  • Variáveis ​​declaradas com let ou const dentro de uma função têm escopo local para essa função.
  • Não são acessíveis fora da função.

Exemplo: Link to heading

function introduzir() {
    let nome = "John";
    const idade = 30;
    console.log(nome, idade); // Só pode ser acessado dentro da função
}

introduzir();
// console.log(nome); // Error: nome is not defined / Erro: nome não está definido
// console.log(idade); // Error: idade is not defined (out of scope) / Erro: idade não está definida (fora do escopo)

Escopo do bloco: Link to heading

  • Introduzido com ES6 (ECMAScript 2015), let e const também criam escopo de bloco.
  • Variáveis ​​declaradas dentro de blocos (com chaves {}), como instruções if, loops for, etc. Eles só são acessíveis dentro desse bloco.

Exemplo: Link to heading


if (true) {
  let mensagem = "Hello";
}

console.log(mensagem); // Error: mensagem is not defined (outside of block) / Erro: mensagem não está definida (fora do bloco)

Resumo Link to heading

  • É recomendado usar let e const para declarar variáveis ​​em vez de var.
  • let e const criam escopo de bloco por padrão.
  • Variáveis ​​globais devem ser evitadas tanto quanto possível, pois podem causar conflitos de nomes e dificultar a manutenção do código.

Continue aprendendo sobre escopos para escrever código JavaScript mais modular e organizado!

<< Funções em JavaScript Hoisting em JavaScript >>