Javascript

Contexto e Escopo no JavaScript

O que é contexto e escopo no JavaScript e o que o escopo interfere no contexto. Veremos o que é this e o que o contexto tem haver com ele

há 1 ano 2 semanas

Formação Desenvolvedor JavaScript
Conheça a formação em detalhes

Contexto e escopo no JavaScript são coisas diferentes, mas elas trabalham em conjunto.

Podemos resumir que contexto é o valor de this, e escopo é o limite onde as expressões e os valores são acessíveis.

Neste artigo, vamos abordar os detalhes do escopo e contexto no JavaScript e como o escopo interfere no contexto.

JavaScript Básico
Curso JavaScript Básico
Conhecer o curso

Escopo

O escopo em JavaScript se refere à visibilidade de variáveis e funções dentro de um programa.

Quando uma variável ou função é declarada em um determinado escopo, ela só pode ser acessada dentro daquele escopo ou de escopos internos a ele.

Podemos determinar que no JavaScript tem dois tipos de escopo, o global e local.

O escopo global é o escopo mais amplo em um programa JavaScript, e inclui todas as variáveis e funções que são definidas fora de qualquer função ou bloco de código. Essas variáveis e funções podem ser acessadas em qualquer lugar do código, mas isso pode criar problemas de segurança e colisões de nomes, que podem ser difíceis de detectar.

Por esse motivo, é uma boa prática definir escopos locais sempre que possível. Isso pode ser feito por meio de funções, que criam um escopo local para as variáveis declaradas dentro delas. Variáveis declaradas dentro de uma função são chamadas de variáveis locais, e só podem ser acessadas dentro dessa função ou em escopos internos a ela.

Por exemplo, considere o seguinte código:

let variavelGlobal = 10;

function foo() {
  let variavelLocal = 20;
  console.log(variavelGlobal); // 10
  console.log(variavelLocal); // 20
}

foo();
console.log(variavelGlobal); // 10
console.log(variavelLocal); // ReferenceError: variavelLocal is not defined

Nesse código, a variável variavelGlobal é definida fora da função foo, o que a torna uma variável global. A função foo define uma variável local variavelLocal, que só pode ser acessada dentro da função.

Contexto

Enquanto o contexto refere-se ao valor de this, o escopo define o limite no qual as variáveis e funções são acessíveis. O escopo pode afetar o contexto, uma vez que o valor de this pode ser alterado dependendo do escopo em que uma função é executada.

Contexto global

No contexto de execução global, this refere-se ao objeto global.

No navegador o this aponta para o objeto window.

console.log(this.document === document); // true


console.log(this === window); // true

Contexto local

Dentro de uma função, o valor de this depende de como a função é chamada.

Em uma chamada de função simples o this não é definido pela chamada. Por padrão, this será o objeto global.

function myFunction(){
  return this;
}

// No navegador
myFunction() === window; // true

Já em uma função construtora o this se refere ao próprio objeto ou ao objeto da instância.

function myFunction(){
  return this;
}

// No navegador
new myFunction() === window; // false

Conclusão

É possível concluir que, apesar de serem conceitos diferentes, o contexto e o escopo no JavaScript, estão interligados.

Enquanto o escopo se refere à visibilidade, o contexto se refere ao valor de this

Com esse conhecimento, os desenvolvedores podem escrever códigos mais eficientes e evitar problemas com variáveis globais, colisões de nomes e outros problemas relacionados ao escopo e contexto.

Sei que você gostou deste artigo e tenho certeza de que a formação para Desenvolvedor React Funcional irá ajudá-lo a se tornar um desenvolvedor muito melhor. São 14h17 de video com muito conteúdo e um total de 59 exercícios.

Veja quais são os cursos que fazem parte desta formação:

Autor(a) do artigo

Ariel Sardinha
Ariel Sardinha

Professor e desenvolvedor. Formando em engenharia de software e Computação - Licenciatura. É autor de cursos em diversos temas, como, desenvolvimento front-end, Flutter, JavaScript, React,js e Vue.js. Nas horas vagas adora estudar sobre tecnologia, filmes e brincar com a pequena Maria Eduarda. arielsardinha

Todos os artigos

Artigos relacionados Ver todos