Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

estou com uma duvida sobre o function

Eu estava praticando um pouco, e não estou entendendo o pq o código n funciona dessa forma

<meta charset="UTF-8">

<script >

function Pular(){

document.write("<br>")
}
function mostrar(frase){

document.write(frase);

}
var Felipe = 1998

 function minhaidade(ano, Felipe){

 return (ano - Felipe);

}

var ano = prompt("minha idade é")
mostrar("eu tenho " + minhaidade + " anos");

</script>

porem quando o coloco assim, ele funciona

<meta charset="UTF-8">

<script >

function Pular(){

document.write("<br>")
}
function mostrar(frase){

document.write(frase);
}
var Felipe = 1998;
 function minhaidade(ano, Felipe){

 return (ano - Felipe);
}
var ano = prompt("minha idade é");
var idade = minhaidade(ano,  Felipe);
mostrar("eu tenho " + idade + " anos");

</script>

eu só adicionei " var idade = minhaidade(ano, Felipe)" pq eu devo fazer isso sendo que já tem a função "minhaidade(ano, Felipe)". Não sei se deu pra entender, mas já agradeço a atenção.

1 resposta
solução!

Olá Felipe, tudo bem com você?

Acredito que você se confundiu em alguns pequenos passos quando precisamos criar funções, vou te ajudar passo a passo:

  • Argumentos da função

Vamos observar um pouco a sua função minhaIdade:

 function minhaidade(ano, Felipe){

     return (ano - Felipe);
}

Esse ano e Felipe não significa as variáveis do nosso código, os nomes são parecidos, mas o que estamos dizendo na verdade é que quando chamarmos a função o primeiro parâmetro será o valor ano e o segundo Felipe

E ai entramos no segundo ponto

  • Precisamos passar os parâmetros da função quando chamamos

Veja que quando vamos utilizar a função:

mostrar("eu tenho " + minhaidade + " anos");

Não estamos passando nada para ela saber o que significa ano e Felipe, então ela não consegue calcular nada!

Como Corrigir?

Agora temos 2 maneiras:

  • Não adicionar argumentos na função

Dessa forma iremos pegar as variáveis do nosso próprio código da maneira que você queria, ficando dessa forma:

    function minhaidade(){

        return (ano - Felipe);

    }
  • Passar os parâmetros necessários

Podemos também na função mostra dizer quem vai fazer o papel de anoe de Felipe, pode parecer meio redundante, mas também funciona :)

   mostrar("eu tenho " + minhaidade(ano, Felipe) + " anos");

Veja que dessa forma poderíamos mudar os nomes do argumento da função minha idade para por exemplo valor1 e valor2 que ainda teríamos o mesmo resultado :)

Compreendeu? Qualquer coisa estou a disposição :)

Abraços e Bons Estudos!