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

Escopo de função

Eu entendi a diferença entre let e const, porém não entendi muito bem o termo escopo de função.

Escopo de bloco é quando declaramos uma variável dentro de um bloco e ela só existe dentro daquele bloco certo? E escopo de função é quando declaramos uma variável dentro de uma função porém ela existe fora dela também?

3 respostas

Quanto a sua dúvida do escopo de função, quando criamos uma variável dentro de uma função, ela só existe dentro daquela função e em funções criadas a partir dela :)


function teste() {
    var variavelTeste = 'oi'
    function funcaoInterna() {
        console.log(variavelTeste) // Aqui irá retornar "oi" :)
    }
}
teste()
console.log(variavelTeste) // Aqui fora da função a variavel não existe :(

Nesse caso,

for(var i = 1; i <= 10; i++) {
    console.log(i);
}
console.log(i);

Não entendi bem por que eu consigo acessar o valor da variável i. É por que ela foi declarada "fora" do loop for?

solução!

Esse é um problema do JavaScript, dentro de bloco for, if... As variáveis vazam o escopo :)

O let veio pra corrigir isso