1
resposta

"texto" dentro da função imprimeTexto não deveria ser uma variável e ter sido declarada?

A function imprimeTexto recebe (texto), este "texto" vai receber o resultado de 2 + 2 que a function vai "imprimir" no console quando as duas funções forem executadas. Esse "texto" não seria uma variável a ser declarada? Se não é uma variável, é o que?

1 resposta

Olá! Tudo bem? Quando estamos falando de funções, nós normalmente passamos parâmetros para ela, através desse parênteses depois de sua declaração. Um parâmetro ou argumento (são sinônimos nesse caso) é uma variável que passamos para a função trabalhar encima. Veja o exemplo:

function imprimeTexto(texto) {
    console.log(texto);
}

imprimeTexto("Olá!"); // Aparece Olá no console

Estamos passando a String "Olá" de parâmetro para a função, que simplesmente mostra no console. O que acontece é que a String "Olá" é atribuída a texto que funciona como uma variável que só vai poder ser acessada dentro da função. Outra abordagem é a seguinte:

const texto = "Olá";


function imprimeTexto() {
    console.log(texto);
}

imprimeTexto(); // Também aparece Olá no console

Nesse segundo caso o que está acontecendo é que a função está acessando a const de outra parte do código, sem ser por parâmetro. No geral, usar funções desse jeito é uma má prática, pois acaba ficando desorganizado e mais difícil de entender quais variáveis a função precisa para funcionar, já que passando por parâmetro fica mais fácil de ter esse controle. Mas o que será que acontece se tivermos tanto uma variável chamada texto fora da função e também um parâmetro chamado texto?

const texto = "Oi";

function imprimeTexto(texto) {
    console.log(texto);
}

imprimeTexto("Olá"); // Também imprime Olá
imprimeTexto(texto); // Imprime Oi, que é o conteúdo da const texto

Como podemos ver, o que foi impresso no console foi Olá, ou seja, as funções vão sempre dar prioridade para seus parâmetros, o que evita conflitos de nome ao longo do código e também facilita na hora de escrever o código, já que não vai ser preciso se preocupar com alguma variável de fora interferindo no resultado. Também podemos ver que é possível passar variáveis como parâmetro, como fizemos na última linha de código, onde o conteúdo da const texto foi passado na função como parâmetro. Espero ter ajudado!