Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Escopo de variáveis

Boa tarde. Na atividade proposta nesta aula, a necessidade de que as variáveis que capturam o input sejam declaradas dentro da função anônima decorre do conceito de escopo de variáveis? Alguém poderia me auxiliar com mais algumas considerações sobre esse assunto (escopo)? Obrigado.

1 resposta
solução!

Olá Paulo, tudo bem com você?

Neste exemplo não foi bem esse o caso de escopo de variável, foi uma questão mais de quando iremos executar essas funções, mas vou te explicar melhor

Primeiramente esse código:

const input = document.querySelector('[data-form-input]');

Poderia estar no começo do nosso arquivo, assim como o botão, pois só precisamos encontrar esse elemento 1 vez na arvore de elementos :)

A grande questão problemática é esse código:

const valor = input.value

Se ele estiver fora do eventListener o que irá acontecer é que quando entramos no site os nossos scripts são executados, e neste momento, não há nada dentro do input, então para ter o valor correto, precisamos apenas quando há o click ir ver o que tem dentro do formulário (input.value), antes disso teriamos apenas valores que não são úteis para nós!

A grande questão de escopo é observar de dentro para fora, escopos mais internos, como de funções, têm acesso a valores que estão acima dela, por exemplo:


// Escopo 1
const numero = 50;

function somar(primeiroValor, segundoValor){
        // Escopo 2
    return primeiroValor + segundoValor + numero;
}

console.log(somar(10, 20))

A função somar tem acesso a variável número pois ela está em um escopo acima, portanto é visível e totalmente utilizável dentro da função

Mas o contrário não é valido, o Escopo 1 só tem alcance as coisas que estão no mesmo nível dele ou acima, nunca abaixo!

Então ele pode acessar a função, mas não tem acesso as variáveis que estão dentro da função

Por isso que o input não precisaria estar dentro da função, pois como está em um escopo acima é totalmente acessível, a questão realmente é o momento que queremos ver o que está dentro dele :)

Conseguiu Compreender?

Qualquer Coisa estou a disposição!!!

Abraços e Bons Estudos =D