Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Escopos

O que seria exatamente um "escopo" na linguagem JavaScript?

3 respostas

Acredito que escopo pode ser definido como o trecho de código que é isolado ou não do restante do código. Por exemplo, com o uso de VAR para declarar variáveis estamos usando uma variável com escopo de função, diferente de LET que usa escopo de bloco , como é exemplificado aqui: https://www.alura.com.br/artigos/escopos-no-javascript?gclid=Cj0KCQjwmuiTBhDoARIsAPiv6L-RLVSiQiCAOIGU8srIdaI1AK_B1HWn1nDlSAyT3Q1bZwEevyqe2eUaAi55EALw_wcB. A forma mais simples que eu entendi é que o escopo se refere ao estado daquela variável, função ou objeto em diferentes partes do código, podendo ela ter o escopo de função, escopo global ou ter escopo de bloco. Sendo assim, escopo determina quais dados podem ser acessados de uma determinada parte do código.

solução!

A resposta do Kaio já está correta, mas apenas complementando:

Quando falamos sobre escopo, estamos falando sobre o limite ao acesso de uma variável por outras partes do código. Todas as variáveis tem um escopo, mas no JavaScript podem ser de função, outros globais e de bloco.

Se declararmos uma variável dentro de uma função, seu escopo se limita a ficar naquela função, isso seria o escopo de função. Se declararmos uma variável no começo do nosso código, fora de qualquer função ou método, isso seria o escopo global. Agora, se declararmos uma variável utilizando a palavra "let" dentro de um método, ela ficaria limitada a ficar ali dentro, isso seria o escopo de bloco. Ex.:

if (true) { 
    let i = 0; 
    alert(i) // Aparecerá um alert mostrando o número 0
} 
alert(i); // Dará erro, pois let declara o escopo de bloco da variável i

Explicação perfeita Matheus, muito obrigado.