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
ouconst
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
econst
também criam escopo de bloco. - Variáveis declaradas dentro de blocos (com chaves
{}
), como instruçõesif
, loopsfor
, 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
econst
para declarar variáveis em vez devar
. let
econst
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!