1
resposta

O javascrip identifica os parâmetros que eu dei na função e procura a mesma nas variáveis?

Por exemplo abaixo, ele disse que pra função calculaImc era composta por (altura, peso) e retornaria com a return peso / (altura * altura), ok! Porém, em baixo, ele calculou normalmente, entretanto, não estava escrito "altura" mas sim, altura+algo (alturaInformada) e não peso, mas (pesoInformado) Isso significa que apenas com o início do título do parâmetro nas variáveis a conta pode ser feita, visto que a preposição era "altura" e "peso"?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
}

var nome = prompt("Informe o seu nome");
var alturaInformada = prompt(nome + ", informe sua altura");
var pesoInformado = prompt(nome + ", informe seu peso");

var imc = calculaImc(alturaInformada, pesoInformado);

document.write(nome + ", o seu IMC é " + imc);
1 resposta

Olá Caroline, tudo bem com você?

Na verdade não tem muito a ver com nome, e sim com a posição, mas vou tentar deixar um pouco mais claro

Quando você fez:

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
}

O que está acontecendo é basicamente dizer:

"Olha eu estou criando uma função com nome de calculaIMC e o primeiro valor que for passado eu quero que você chame de altura, e o segundo valor de peso"

Que no caso são os parâmetros da função, então se eu faço

calculaImc( 10, 20)

Neste exemplo dizemos que estamos passando como argumento os valores 10 e 20, veja que não há nenhum nome parecido, ou coisa do tipo, e isso ocorre porque a nossa função espera receber valores :)

Então ao executar isso o fluxo é basicamente: "Olha recebemos o valor 10 e o valor 20, e a nossa função diz que devemos chamar o primeiro de altura, e o segundo de peso"

E isso é feito :)

Então se fizermos:

var imc = calculaImc(pesoInformado, alturaInformada);

Também funcionara, porém com um resultado errado, e a razão é a mesma, para o javascript trabalhamos com valores e posições, para ele os nomes nem existem, são apenas endereços na memória do computador :)

Conseguiu compreender ? Abraços e Bons Estudos!