JavaScript输出返回未定义的

JavaScript输出返回未定义的,javascript,function,conditional-statements,undefined,Javascript,Function,Conditional Statements,Undefined,我最近启动了JavaScript并正在开发一个简单的税务计算器,唯一的问题是输出返回的是未定义的,而不是预期的值。例如,当我输入320000时,所得税应该是14000,但它返回的是未定义的。我尝试将calculation设置为0,但没有解决问题。什么使我的函数不能返回预期值?我看了我的学院给出的示例程序,这些程序使用条件中的变量,效果很好,但我的不是 函数calculateAX() { var应纳税所得额,计算; 可征税收入=document.getElementById(“t”)。值*1;

我最近启动了JavaScript并正在开发一个简单的税务计算器,唯一的问题是输出返回的是
未定义的
,而不是预期的值。例如,当我输入320000时,所得税应该是14000,但它返回的是未定义的。我尝试将
calculation
设置为
0
,但没有解决问题。什么使我的函数不能返回预期值?我看了我的学院给出的示例程序,这些程序使用条件中的变量,效果很好,但我的不是

函数calculateAX()
{
var应纳税所得额,计算;
可征税收入=document.getElementById(“t”)。值*1;
如果(应纳税所得额>250000){
计算=0;
}
其他条件(应纳税所得额>250000和应纳税所得额<40000){
计算=(应纳税所得额-250000)*0.20;
}
其他条件(应纳税所得额>400000和应纳税所得额<800000){
计算=((应纳税所得额-400000)*0.25)+30000;
}
其他条件(应纳税所得额>800000和应纳税所得额<2000000){
计算=((应纳税所得额-800000)*0.30)+130000;
}
其他条件(应纳税所得额>2000000和应纳税所得额<8000000){
计算=((应纳税所得额-2000000)*0.32);
}
其他条件(应纳税所得额>8000000){
计算=((应纳税所得额-8000000)*0.35)+2410000;
}
document.getElementById(“inputTax”).innerHTML=“应纳税所得额为:”+应纳税所得额;
document.getElementById(“incomeTax”).innerHTML=“所得税为:”+计算;
}
所得税计算器 应纳税所得额 计税


对于值
320000
,条件对于
可征税收入>250000
始终为真,并返回
0
。此外,值
40000
(在第二种情况下使用)和
400000
(在第三种情况下使用)之间存在不匹配

应将以下前两个条件更改为:

if(应纳税所得额<250000){

else如果(应纳税所得额>250000和应纳税所得额<400000){

请注意:您不需要检查最终条件(
可征税收入>8000000
),只有
其他
可以

演示:

函数calculateAX()
{
var应纳税所得额,计算;
可征税收入=document.getElementById(“t”)。值*1;
if(应纳税所得额<250000){
计算=0;
}
其他条件(应纳税所得额>250000和应纳税所得额<400000){
计算=(应纳税所得额-250000)*0.20;
}
其他条件(应纳税所得额>400000和应纳税所得额<800000){
计算=((应纳税所得额-400000)*0.25)+30000;
}
其他条件(应纳税所得额>800000和应纳税所得额<2000000){
计算=((应纳税所得额-800000)*0.30)+130000;
}
其他条件(应纳税所得额>2000000和应纳税所得额<8000000){
计算=((应纳税所得额-2000000)*0.32);
}
否则{
计算=((应纳税所得额-8000000)*0.35)+2410000;
}
document.getElementById(“inputTax”).innerHTML=“应纳税所得额为:”+应纳税所得额;
document.getElementById(“incomeTax”).innerHTML=“所得税为:”+计算;
}
所得税计算器 应纳税所得额 计税


当您输入的金额大于250000时,它将起作用,但当金额小于250000时,您在
if…else
中没有涵盖该情况。因此,未定义是正常的。您只需要检查if语句是否小于某个值,因为存在“if else”的一部分声明。最后一个
else if taxiableincome
可以只是一个else声明。现在它可以正常工作了。谢谢!我没有注意到400000中遗漏的0。