使用javascript计算时,总和为零
使用javascript计算时,总和为零,javascript,html,Javascript,Html,var num1=document.getElementById(“number1”); var num2=document.getElementById(“number2”); var k=数量(num1.值); var l=数量(num2.值); 函数add(){ onCout(k,l,函数结果(a,b){ 返回a+b; }); } 函数onCout(c、d、回调){ var结果=回调(c,d); output.innerHTML=结果; } 文件 Num1: Num2: 添加 在add函
var num1=document.getElementById(“number1”);
var num2=document.getElementById(“number2”);
var k=数量(num1.值);
var l=数量(num2.值);
函数add(){
onCout(k,l,函数结果(a,b){
返回a+b;
});
}
函数onCout(c、d、回调){
var结果=回调(c,d);
output.innerHTML=结果;
}
文件
Num1:
Num2:
添加
在add函数中获取k
和l
的值。这是因为在单击按钮之前,这些值是空的
var num1=document.getElementById(“number1”);
var num2=document.getElementById(“number2”);
函数add(){
var k=数量(num1.值);
var l=数量(num2.值);
onCout(k,l,函数结果(a,b){
返回a+b;
});
}
函数onCout(c、d、回调){
var结果=回调(c,d);
output.innerHTML=结果;
}
Num1:Num2:
添加
您应该在函数中获取更新后的值,而不是加载时获取首字母,这可以按如下方式完成:
function add(){
var k=Number(num1.value);
var l=Number(num2.value);
onCout(k,l,function result(a,b){
return a+b;
});
}
得到0是因为在页面加载时得到的是k和l的值,而不是在单击按钮时调用的add函数中
var k=Number(num1.value);
var l=Number(num2.value);
必须在函数add()内获取该值,因为这些值是动态的
在所讨论的代码中,值只提取一次,这使得它们只指向初始值,而不会随用户输入而动态更改
var num1=document.getElementById(“number1”);
var num2=document.getElementById(“number2”);
函数add(){
var k=数量(num1.值);
var l=数量(num2.值);
onCout(k,l,函数结果(a,b){
返回a+b;
});
}
函数onCout(c、d、回调){
var结果=回调(c,d);
output.innerHTML=结果;
}
文件
Num1:
Num2:
添加
但由于我将k和l的值放在add()函数之外,它将被识别为全局变量。为什么会变成零?你能澄清一下吗?@Randomguy如果没有默认值,输入字段的初始状态为空(或者转换为数字后为零)。如果在add()
函数之外(因此在用户输入之前)获取它们的值,则两个输入字段都将获得空(零)值。通过获取函数中的值,您将确保用户输入了正确的值。