简单JavaScript函数返回函数而不是值
我刚刚开始,我正在尝试构建一个简单的计算函数,在一页上显示两个数字的结果。点击submit按钮时,输出是函数而不是值。我哪里出错了 HTML简单JavaScript函数返回函数而不是值,javascript,Javascript,我刚刚开始,我正在尝试构建一个简单的计算函数,在一页上显示两个数字的结果。点击submit按钮时,输出是函数而不是值。我哪里出错了 HTML 提交 试验 JS "严格使用",; var total=函数(){ var价格=函数(){ parseFloat(document.getElementById(“price”); } var tax=函数(){ parseFloat(document.getElementById(“tax”)); } var final=函数(){ 最终=价格*税
提交
试验
JS
"严格使用",;
var total=函数(){
var价格=函数(){
parseFloat(document.getElementById(“price”);
}
var tax=函数(){
parseFloat(document.getElementById(“tax”));
}
var final=函数(){
最终=价格*税费;
最终=总数
}
document.getElementById(“输出”).innerHTML=final;
};
您有几个问题,您将一些代码放入函数中而不调用它们
另一个问题是,您需要输入标记的值
“严格使用”;
var total=函数(){
var price=parseFloat(document.getElementById(“price”).value);
//获得价值^^^^^^
var tax=parseFloat(document.getElementById(“tax”).value)
//获得价值^^^^^^
//直接计算最终值
var final=价格*税费;
document.getElementById(“输出”).innerHTML=final;
};代码>
提交
您有几个问题,您将一些代码放入函数中而不调用它们
另一个问题是,您需要输入标记的值
“严格使用”;
var total=函数(){
var price=parseFloat(document.getElementById(“price”).value);
//获得价值^^^^^^
var tax=parseFloat(document.getElementById(“tax”).value)
//获得价值^^^^^^
//直接计算最终值
var final=价格*税费;
document.getElementById(“输出”).innerHTML=final;
};代码>
提交
您的javascript有几个问题。让我们把它们一个一个地分解:
document.getElementById
返回一个元素parseFloat
将尝试计算元素,而不是本例中的值(始终为NaN或不是数字)。您需要此元素的值,因此使用将返回该值。此外,你实际上并没有做任何有价值的事情。(应使用return返回找到的浮点值,或将其设置为另一个变量。)
price
和tax
在这种情况下都是函数。你不能简单地将它们相乘以得到你想要的结果。使用var total=price()*tax()
将变量total
设置为从price()
和tax()
立即返回的浮动。将此值返回函数将修复下一行:
final
这里还有一个函数。您想使用final()
调用它
您的最终脚本:
var total=function(){
var价格=函数(){
返回parseFloat(document.getElementById(“price”).value);
}
var tax=函数(){
返回parseFloat(document.getElementById(“tax”).value);
}
var final=函数(){
var总额=价格()*税金();
返回总数
}
document.getElementById(“输出”).innerHTML=final();
};代码>
提交
测试
您的javascript有几个问题。让我们把它们一个一个地分解:
document.getElementById
返回一个元素parseFloat
将尝试计算元素,而不是本例中的值(始终为NaN或不是数字)。您需要此元素的值,因此使用将返回该值。此外,你实际上并没有做任何有价值的事情。(应使用return返回找到的浮点值,或将其设置为另一个变量。)
price
和tax
在这种情况下都是函数。你不能简单地将它们相乘以得到你想要的结果。使用var total=price()*tax()
将变量total
设置为从price()
和tax()
立即返回的浮动。将此值返回函数将修复下一行:
final
这里还有一个函数。您想使用final()
调用它
您的最终脚本:
var total=function(){
var价格=函数(){
返回parseFloat(document.getElementById(“price”).value);
}
var tax=函数(){
返回parseFloat(document.getElementById(“tax”).value);
}
var final=函数(){
var总额=价格()*税金();
返回总数
}
document.getElementById(“输出”).innerHTML=final();
};代码>
提交
测试
删除
var final = function() {
final = price * tax;
final = total
}
而是把
return price * tax;
删除
而是把
return price * tax;
您没有从功能中返回任何内容。。。。和document.getElementById(…)
是对这些输入元素的引用,而不是它们的值。您将final
声明为一个函数,然后在该函数中将其重新定义为两个不同的东西。从您的代码和我看到的所有注释中,您需要深入了解Javascript基础知识,然后再继续编写代码:-)您没有从函数返回任何内容。。。。和document.getElementById(…)
是对这些输入元素的引用,而不是它们的值。您将final
声明为一个函数,然后在该函数中将其重新定义为两个不同的东西。从您的代码和我看到的所有注释中,您需要深入了解Javascript基础知识,然后再继续编写代码:-)解释这些问题将使这成为一个更好的答案,而不是简单地解决问题“是的,我同意。大多数用户都会建立自己的答案。效果很好,解释非常棒,可以帮助我理解发生了什么!解释这些问题会使这成为一个更好的答案,而不是简单地解决问题
var final = function() {
final = price * tax;
final = total
}
document.getElementById("output").innerHTML = final;
var final = function() {
final = price * tax;
final = total
}
return price * tax;