Promoção no ar
Tempo restante da oferta:
15 Horas
49 Min
29 Seg
Assinar →

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

Ariel Sardinha 4 anos atrás

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.

Curso React - Despertando o Poder dos Hooks 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:

Continue lendo

Artigos relacionados

Um ano de acesso total para você viver de programação.

Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro console.log ao mercado de trabalho.

  • 1 ano de acesso a todos os cursos
  • Cursos novos toda semana
  • Suporte direto com professores
  • Plano de carreira personalizado
  • Certificados digitais inclusos
  • Aplicativos para Android e iOS, com acesso offline
Garantia incondicional de satisfação

Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

Acesso completo a todos os cursos e dezenas de Formações.

12 meses
Economize R$ 840,00 54% OFF

de 12x R$ 129,00 por apenas

12x R$ 59,00

sem juros no cartão de crédito ou R$ 599,00 à vista

Oferta termina em 15h 49min 29s

  • Acesso imediato e ilimitado durante 1 ano.
  • Plano de carreira personalizado.
  • Suporte direto com professores.
  • E muito mais!
Matricule-se agora