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

Dúvida sobre return e var na função.

Estou tentando fazer a função do IMC de uma maneira mais simples, então o código ficou assim:

var imc = calculaIMC(peso, altura)
{
    return peso / (altura * altura);
}
document.write("o IMC é: " + calculaIMC(120, 1.87));

O código retornou um erro no console: Uncaught SyntaxError: Illegal return statement.

Duas dúvidas: Por que o return não funcionou? Por que a função tem de ser posta dentro de uma variável? Faz diferença isso? Se sim, qual?

7 respostas
solução!

Não funcionou porque você não declarou uma função! Lembre-se que para declarar uma função deve começar com a palavra chave function.

Além disso, você esta tentando declarar uma função e ao mesmo tempo executá-la. Isso é possível apenas com técnicas avanças que estão fora do escopo desse curso, pois seu monitor explodiria e você desistiria de aprender a programar tão cedo.

OBS: você criou uma variável imc que não é usada em lugar algum. Ficou até mais complexo, porque criou algo que não é usado.

Corrigindo seu código:

function calculaIMC(peso, altura) {
    return peso / (altura * altura);
}

Aqui você declamou uma função, ela esta guarda, esperando ser chamada.

Contudo, no curso que você esta fazendo, que é o antes de ser regravado, acho que o instrutor declara funções assim:

var calculaIMC =  function(peso, altura) {
    return peso / (altura * altura);
}

O efeito é o mesmo, só faz diferença para quando você for aplicar técnicas avançadas. Como é um curso de lógica de programação, o instrutor não focou nessas peculiaridades da linguagem JavaScript.

Gus?

Entendo. É que eu não sou totalmente iniciante na lógica e nem na linguagem. Eu tenho alguns problemas pontuais, e fazendo esse curso mais básico, estou tentando corrigir.

Perfeito, espero que até o final do treinamento você consiga atingir sua meta.

Sucesso e bom estudo, Gus!

O problema é justamente em funções. hehehehe O que eu não entendo é a questão dos parâmetros em funções. por exemplo... estou tentando refazer o do IMC com a função. O código está assim:

a dúvida está nos parâmetros: dessa forma, a variável peso e altura estão sendo passadas para dentro da função? ou eu precisaria criar duas variáveis dentro do escopo da função para que recebessem o valor das de fora? O valor escrito na tela é NaN. Por quê?

O código que acabou não indo:

Quando for colar seu código, clique no botão "INSERIR CÓDIGO ANTES".

Aliás, se não me engano, eu lhe informei que há um novo curso de lógica de programação. Talvez seja interessante parar este e iniciar o outro. Acredito que muitas das suas dúvidas serão solucionadas.

Aguardo o seu código postado corretamente para que eu possa vê-lo.