Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

EXERCÍCIO 13 AULA 4

Fiz o que o que me foi pedido, e acrescentei alguns outros comandos; como por exemplo o Math.round. Quando abri o chrome para testar o programa tudo ocorreu normalmente. Inclusive o Math.round arredondou o resultado para 18, ficando assim, a mensagem: "* Passaram-se 18 gerações"

Porém logo abaixo do texto requisitado aparece a seguinte mensagem:

" function round() { [native code] }"

O que há de errado com o meu código?

<meta charset="UTF-8">

<script>

var chegadaPort = 1500
var ano = 2017
var media = (ano-chegadaPort)/28

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


}

function mostra(frase)  {
    document.write("<h1>*****************************</h1>");
    pulaLinha()
    document.write(frase+Math.round)
    var media = (ano-chegadaPort)/28

}

mostra("<h1>Passaram-se "+Math.round(media)+" gerações</h1>");

</script>

Att: Clara Lessa.

4 respostas

Olá, Clara!

Essa mensagem está aparecendo por causa dessa linha daqui:

document.write(frase+Math.round)

Nessa linha, você manda imprimir a frase que passou como parâmetro da função e concatena com o conteúdo da função round da biblioteca Math. Ao invés de exibir todo o conteúdo da função, ele exibe o [native code] no lugar.

Experimente trocar essa linha para:

document.write(frase)

Bons estudos!

Oi Arthur. Obrigada pela resposta. Testei aqui e deu certo. Você poderia me explicar o porquê dessa mensagem aparecer? E como o programa funciona colocando um comando (Math.roud) dentro do "mostra" sem que ele apareça na function?

solução!

Olá Clara,

Você poderia me explicar o porquê dessa mensagem aparecer?

Nessa linha...

document.write(frase+Math.round)

...você está mandando imprimir duas informações concatenadas (usando o "+"). Como você não usou parêntesis, ele retornou o conteúdo da função.

Round é uma função da biblioteca Math em Javascript. Ela é escrita da seguinte forma:

function round() { 
    ...
}

No lugar das reticências, fica o conteúdo da função. Só que esse conteúdo foi oculto e, no lugar, o navegador exibe a mensagem [native code].

E como o programa funciona colocando um comando (Math.roud) dentro do "mostra" sem que ele apareça na function?

Isso porque você passou um argumento entre parêntesis:

mostra("<h1>Passaram-se "+Math.round(media)+" gerações</h1>");

Quando você usa os parêntesis, você manda executar a função e ela te dá um retorno. Quando você não passa os parêntesis você está pedindo a própria função. Como você está usando a função no document.write, ele imprime o conteúdo.

Muito obrigada :)