1
resposta

Eu não entendi a real diferença entre uma função com parâmetro e a sem parâmetro.

Eu não entendi a real diferença entre uma função com parâmetro e a sem parâmetro, alguém pode me explicar? abaixo segue meu código.

<meta charset="UTF-8"> 
<script> 
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(mensagem) {
        // o parâmetro mensagem é substituído sempre que eu chamo a função mostra pelo o que está dentro do parenteses naquele momento da linha,então o parâmetro é uma variável que fica sujeito a função? eu não entendi a real diferença entre uma função com parâmetro e a sem parâmetro. 
        pulaLinha();
        document.write(mensagem);
        pulaLinha();

    }

    var idadeIrmão = 39;
    var minhaIdade = 27;
    var resultado = idadeIrmão - minhaIdade;
    mostra("Minha idade é: " + minhaIdade + " anos");
    mostra("A idade do meu irmão é: " + idadeIrmão+ " anos");
    mostra("Nossa diferença de idade é: " + resultado + " anos");
</script>
1 resposta

Olá, Vitor! Tudo bem?

Os parâmetros de uma função são valores recebidos para serem tratados dentro do código da função, podendo assim alterar o resultado final dela. Já uma função sem parâmetros não receberá valores que poderão ser tratados nela e terão um retorno "fixo" (isso na verdade pode variar dependendo do contexto e o que já é utilizado na função mas por agora considere essa diferença).

Podemos exemplificar no seu código por exemplo. Na função "mostra(mensagem)" o parâmetro "mensagem" é recebido e utilizado no "document.write(mensagem)" dentro dela. Se alterássemos o código para que ela não recebesse parâmetros ela ficaria assim:

function mostra() {
        pulaLinha();
        document.write(mensagem);
        pulaLinha();
    }

Nesse caso, mesmo se ao ao chamar a função você passasse o "Minha idade é: " + minhaIdade + " anos" você receberia um erro pois "mensagem" não foi definido como parâmetro e ela não esperava tratar isso.

Apontando para a dúvida que deixou no comentário dentro do código, basicamente o parâmetro "mensagem" é um portador para qualquer valor externo à função que você passar ao chamá-la. É apenas uma maneira de informar onde que você quer utilizá-lo dentro da função através do nome que deu ao parâmetro na declaração da função.

Recomendo experimentar criando funções que recebam mais de um parâmetro e os manipule dentro dela, como uma função que receba dois números e retorne a soma deles ou outras operações matemáticas. Isso vai ajudar a solidificar o entendimento.