将值从一个函数移动到另一个函数

时间:2017-03-17 14:11:45

标签: javascript

我是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)。不幸的是,我不明白为什么并且可以使用你的帮助理解。

非常感谢。

3 个答案:

答案 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