1
resposta

Minha solução.

<meta charset="UTF-8">

<script>

    function pulaLinha() {
        document.write("<br>");
    }

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

    var IDADE1 = 29;
    var IDADE2 = 33;

    mostra("Nossa diferença de idade é " + (IDADE1 - IDADE2) + " anos.");

</script>

Fiquei com dúvida sobre a posição do pulaLinha. Neste local também está certo?

Pois na resolução do Prof. ele colocou em baixo.

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

    function mostra(frase) {
        document.write(frase);
    }

    var minhaIdade = 18;
    var idadeIrmao = 15;

    mostra("Nossa diferença de idade é " + (minhaIdade - idadeIrmao));
    pulaLinha();
</script>
1 resposta

Sim, está correto. A questão é que no caso da função pulaLinha() estiver dentro da função mostra(), nós não precisariamos chamar ela toda hora. Quando realizamos muitas tarefas repetitivas em nosso código, colocamos a sequência destas tarefas em uma função para automatizar o nosso código, então quando chamamos uma função em determinada parte do código as instruções dentro da função (que chamamos de corpo da função) serão executadas. Mas perceba que se você tirar a função pulaLinha() de mostra(), a função perde seu significado pois apenas está executando uma instrução que é document.write(). Veremos:

<script> 
    // Código sem nenhuma função criado por nós
    var minhaIdade = 18;
    var idadeIrmao = 15;

    /* document.write é uma função embutida do JS, e por não possui quebra de
    linhas */
    document.write("Nossa diferença de idade é " + (minhaIdade - idadeIrmao));
    document.write("Meu irmão tem " + idadeIrmao + "anos.");
</script>

Ao executar o código acima, será exibido no navegador da seguinte forma:

Navegador

Seria muito repetitivo ficar digitando document.write() para a mensagem e ainda para quebrar linha com a tag 'br' (break). Então criamos funções justamente para executar essas funcionalidades.

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
    }

    var minhaIdade = 18;
    var idadeIrmao = 15;

    mostra("Nossa diferença de idade é " + (minhaIdade - idadeIrmao));
    pulaLinha();
</script>

Mas perceba que agora você passará a ficar digitando mostra() e pulaLinha(), sempre para realizar algo simples que é pular uma linha depois de exibir uma mensagem, tem como melhorar esse código ao ponto de ter apenas uma função que exibe a mensagem e pule a linha em uma única instrução. Portanto movemos pulaLinha() para dentro da função mostra(), já que toda vez que você querer exibir uma mensagem, vai querer pular uma linha.

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

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

    var minhaIdade = 18;
    var idadeIrmao = 15;

    mostra("Nossa diferença de idade é " + (minhaIdade - idadeIrmao));
</script>

Aí está o ponto principal, o código funciona do mesmo jeito, as mesmas instruções são executadas, porém é uma questão de praticidade, organização do código e legibilidade. O que é mais fácil de entender e de você executar... Muitos document.write() repetitivos com tags 'br' para pular linhas? Ou apenas algo como mostra() (que está executando justamente essas instruções).

É isso, espero que eu tenha ajudado você a compreender mais dessas funções além de saber se é correto ou não :)