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

Variável não definida

Olá, alguém pode me ajudar? Tentei criar um programa em que o usuário insere o valor da temperatura em ºF e ao clicar em ok, essa temperatura é convertida para ºC. O código ficou assim:

<meta charset="UTF-8">

 Digite aqui a temperatura em ºF que será convertida para ºC

 <br> <br>

 <input/>

<br> <br>

<button> Ok </button>

<script>


    function converteTemp() {

    var temperaturaC = (9 * temperaturaF + 160)/5;
    return temperaturaC;

}


var input = document.querySelector("input");
var temperaturaF = input.value;
var button = document.querySelector("button");
button.onclick = converteTemp;




alert("A temperatura é de " + temperaturaC + "ºC");



    </script>

Ao rodar no navegador, o console diz que "temperaturaC" não está definida. Até tentei solucionar chamando a função no button.onclick, mas também não deu certo. O que está errado no meu código?

4 respostas
solução!

Oi Juliana, foi por pouco, você errou coisas simples como a var input que deveria ter ficado em primeiro no código e antes da função, visto que logo a chamaríamos, também o alert que vc deveria ter colocado dentro da função.

Quanto ao var temperaturaF tirei, pois não estava dando certo com ele. Ah e no calculo testei aquele e não foi, não sei se era a intenção ou o correto, mas enfim qualquer dúvida pergunte e não desanime, tbm demorei quase 1 hora pra corrigir o código ^_^

<meta charset="UTF-8">

 Digite aqui a temperatura em ºF que será convertida para ºC

 <br> <br>

 <input/>

<br> <br>

<button> Ok </button>

<script>

var input = document.querySelector("input");

//input focus é só pra dar foco da caixinha ao recarregar a página.
input.focus();

function converteTemp() {

    var temperaturaC = (input.value - 32) / 1.8;

    alert("A temperatura é de " + temperaturaC + "ºC");

    //return temperaturaC;

}

var button = document.querySelector("button");
button.onclick = converteTemp;


 </script>

Espero ter ajudado!

Deixa eu ver se eu entendi... Eu consigo usar o valor de uma variável numa função quando o valor dela foi atribuído antes da função? (Isso explica o pq a var input tem que ser declarada antes da função)

E, quando o valor de uma variável é atribuído dentro da função, só consigo usar o valor dessa variável dentro da função? (Isso explica pq o alert tem que ser escrito dentro da função). Seria isso?

Ah, e sobre o cálculo: deu errado porque coloquei a fórmula de conversão de ºC para ºF e não o contrário. Em vez de ser

var temperaturaC = (9 * input.value + 160)/5;

deveria ser:

var temperaturaC = (5 * input.value - 160)/9;

Usando esse último código dá certinho.

Entendeu sim!

Isso, se vc declarar a var depois, até onde eu sei não vai dar pra pegar ela na função que veio antes, por isso colocamos as variáveis que iremos utilizar em funções, antes e fora das funções, deu pra entender?

Sim, uma variável dentro da função só existe ali dentro, por exemplo, caso queira uma variável de mesmo nome de uma que esteja dentro da função pode, já que no código "base" ela não existe.

Enfim tudo o que vc falou está certo!

E sobre o calculo realmente faz sentido, qualquer duvida, pode mandar ^_^

Muito obrigada, me ajudou muito!! :)