[Javascript] Escopos
Escopo
O que é?
- Contexto ou lugar onde escrevemos nosso código
- Sua função é determinar a visibilidade/acessibilidade de objetos, variáveis e funções.
Tipos de escopo
-
Global
É o contexto que envolve toda a aplicação. Sempre que iniciamos um código Javascript é criado um escopo global e dentro dele podemos criar outros escopos denominados Locais.
-
Local
São contextos criados durante o desenvolvimento. Antes do ES6, a única maneira de criar novos escopos era através de funções. Porém, após a chegada do ES6, com o uso do
let
e doconst
, a criação de escopos locais deixou de ser limitada apenas a funções e passou a ser possível criar o escopo de bloco.
Escopo de bloco
O que é?
Qualquer código que esteja envolto de { }
. Podendo ser uma estrutura condicional (if / else if / else), de repetição (while / do while / for) e a própria função.
OBS: A única maneira de utilizar o escopo de bloco é utilizando o
let
e oconst
.
Exemplos
// Utilizando var em um escopo de bloco
function imprimeNome() {
if(true) {
var nome = 'Brendo';
}
console.log(nome); // imprime: Brendo
}
imprimeNome();
// Utilizando let ou const em um escopo de bloco
function imprimeNome() {
if(true) {
let nome = 'Brendo';
}
console.log(nome); // imprime: nome is not defined
}
imprimeNome();