3
respostas

Curiosidade!

Boa noite. Estava fazendo uma programação, mas quando eu coloquei as palavras "escreve" e "linha" no lugar de "mostra" e "frase" respectivamente deu erro de programação

<meta charset="UTF-8">

<script>

    function escreve(linha)    {

        document.write(linha); 
        pulaLinha();
    }

        function pulaLinha()    {

            document.write("<br>");

        }

var anoAtual = (2022)

mostra("Shaian possui " + (anoAtual - 1992) + " anos");

mostra("E Isabele possui " + (anoAtual - 2015) + " anos")

</script>

Já quando coloquei as palavras "mostra" e "frase" funcionou corretamente.

<meta charset="UTF-8">

<script>

    function mostra(frase)    {

        document.write(frase); 
        pulaLinha();
    }

        function pulaLinha()    {

            document.write("<br>");

        }

var anoAtual = (2022)

mostra("Shaian possui " + (anoAtual - 1992) + " anos");

mostra("E Isabele possui " + (anoAtual - 2015) + " anos")

</script>

Alguém poderia me dizer porque isto aconteceu?

3 respostas

Shaian Ari Griga, bacana alterar as nomenclaturas para efetuar testes... Basicamente você mudou o nome da função e do parâmetro, mas esqueceu de alterar a sua chamada mais abaixo. :)

Em vez de:

mostra("Shaian possui " + (anoAtual - 1992) + " anos");
mostra("E Isabele possui " + (anoAtual - 2015) + " anos")

Usar:

escreva("Shaian possui " + (anoAtual - 1992) + " anos");
escreva("E Isabele possui " + (anoAtual - 2015) + " anos")

Adendo: sempre mantenha seu código identado. Segue código completo:

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

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

  var anoAtual = (2022)

  escreve("Shaian possui " + (anoAtual - 1992) + " anos");
  escreve("E Isabele possui " + (anoAtual - 2015) + " anos")
</script>

Adendo2: como sugestão, para manter uma mesma semântica, se era "mostra", um correspondência seria "escreve", ou seja, uma está para a outra, assim como, "mostre", seria "escreva". A ideia aqui seria manter o mesmo tempo verbal... uma outra dupla seria no infinitivo: mostrar x escrever.

Pense assim: "uma função que mostra ou que escreve"

"uma função que mostre ou que escreva"

"uma função que vai mostrar ou que vai escrever"

Percebes as correspondências?

Boa noite. Olhando a programação, percebi que coloquei um nome na função e esqueci de atribuir o mesmo nome na chamada. Obrigado por observar este detalhe :)

Boa tarde.

Muito bom tirar estas dúvidas!!!!