1
resposta

[Dúvida] Variável dentro de função

Quando usa-se uma variável dentro de uma função com parâmetros, e depois eu invoco essa função várias vezes, a variável ela vai mudar o seu valor? Ou pra cada função se vai ter variáveis diferentes com o mesmo nome?

function exibirTextoNaTela(tag) {
    let campo = document.querySelector(tag);
    campo.innerHTML = texto;
}

exibirTextoNaTela('h1');
exibirTextoNaTela('p');

Por exemplo, aqui chamou a função duas vezes, em cada uma a variável campo tem um valor diferente porque mudou o parâmetro da função... minha dúvida é, se eu chamar o valor da variável pra mostrar, vai dar erro? Ou o sistema não vai entender? Tentei aqui, mas não consegui.

1 resposta

Oi, Júlio!

Agradeço por compartilhar sua dúvida com a comunidade Alura.

Sua pergunta é muito pertinente e toca num ponto importante da visibilidade das variáveis dentro de funções. No seu exemplo, a variável campo está declarada com let dentro da função, ou seja, ela só existe enquanto a função está sendo executada. A cada chamada, uma nova variável campo é criada e descartada ao final da execução.

Se você tentar acessar campo fora da função, o JavaScript vai gerar um erro do tipo ReferenceError, pois essa variável não existe no escopo global.

Um exemplo que reforça esse comportamento:


function teste() {
    let mensagem = "Olá!";
    console.log(mensagem);
}

teste();
console.log(mensagem); // ReferenceError: mensagem is not defined

Ou seja, cada vez que você chama exibirTextoNaTela('h1') e depois exibirTextoNaTela('p'), o que muda é o valor do parâmetro tag, e a variável campo criada dentro da função passa a apontar para um elemento diferente. Mas essa variável não é compartilhada entre as chamadas, nem pode ser acessada fora da função.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!