我是javascript的新手,我正在尝试学习编程语言。我创建了一个快速网站,将温度从华氏温度转换为摄氏温度,我使用javascript进行转换。我知道它不必分为两个不同的功能,但我会开始简单,并建立更复杂。我用来完成转换的代码是:
function toCelcius(){
var temp = document.getElementById("tempConversion").value;
var dif = calculate(temp);
var c = (5/9) * dif;
document.getElementById("answer").innerHTML = c;
}
function calculate(temp){
var dif = temp - 32;
document.getElementById("firstCalc").innerHTML = dif;
}

我知道NaN不是一个数字,所以我假设没有正确定义线,var dif = calculation(temp)。不幸的是,我不明白为什么并且可以使用你的帮助理解。
非常感谢。
答案 0 :(得分:1)
function calculate(temp){
var dif = temp - 32;
document.getElementById("firstCalc").innerHTML = dif;
return dif; // return the value here...
}
function toCelcius(){
var temp = document.getElementById("tempConversion").value;
var dif = calculate(temp); // returned value will be assigned in "dif"
var c = (5/9) * dif;
document.getElementById("answer").innerHTML = c;
}
答案 1 :(得分:1)
您的函数 calculate(temp)未返回所需的值。因此, dif 将未定义,并且当您在那里执行任何算术运算时,它将为您提供 NaN 。
像这样更新你的功能 -
function calculate(temp){
var dif = temp - 32;
document.getElementById("firstCalc").innerHTML = dif;
return dif;
}
答案 2 :(得分:0)
从函数中获取值时,请尝试使用return
,而不是设置变量。请注意,在calculate()
中,变量不必命名为dif
。真的试着去了解这里发生了什么,因为从长远来看,更完整的理解会对你有所帮助。
function toCelcius(){
var temp = document.getElementById("tempConversion").value;
var dif = calculate(temp);
var c = (5/9) * dif;
document.getElementById("answer").innerHTML = c;
}
function calculate(temp){
var dif = temp - 32;
document.getElementById("firstCalc").innerHTML = dif;
return dif;
}
<input type="text" id="tempConversion"></input>
<br/>
<button type="button" onClick="toCelcius();">Convert</button>
<br/>
<span id="firstCalc"></span>
<br/>
<span id="answer"></span>
基本上,由于您没有使用return
,因此无论您将dif
设置为(更不用说使用var
分隔两个dif
变量,所以第一个不会被设置),它会立即设置为你从calculate()
返回的内容 - undefined
。