简单JavaScript函数返回函数而不是值

简单JavaScript函数返回函数而不是值,javascript,Javascript,我刚刚开始,我正在尝试构建一个简单的计算函数,在一页上显示两个数字的结果。点击submit按钮时,输出是函数而不是值。我哪里出错了 HTML 提交 试验 JS "严格使用",; var total=函数(){ var价格=函数(){ parseFloat(document.getElementById(“price”); } var tax=函数(){ parseFloat(document.getElementById(“tax”)); } var final=函数(){ 最终=价格*税

我刚刚开始,我正在尝试构建一个简单的计算函数,在一页上显示两个数字的结果。点击submit按钮时,输出是函数而不是值。我哪里出错了

HTML


提交
试验
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;