在 JavaScript If..Else 语句中使用逻辑运算符“&&”时得到 "undefined" 结果
Getting "undefined" result when using the logical operator "&&" in a JavaScript If..Else statement
该代码用于根据收入 (var income) 选择联邦贫困水平 (var fpl) 百分比类别。当我 运行 这个脚本时,当我使用 && 逻辑运算符时,我的结果是 "undefined"。如果我使用 || 逻辑运算符,我会得到错误且相同的答案 - “101-185%” - 无论我使用什么数字 var income.
<p id="demo"></p>
<script>
function FPL() {
var income = '4200.00';
var fs = '1';
var fpl;
if(fs == '1') {
if(income < '1022.00')
fpl = "0-100%";
if (income > '1022.00' && income < '1882.00')
fpl = "101-185%";
if (result3 > '1882.00' && income < '2033.00')
fpl = "186%-200%";
if (income < '2033.00')
fpl ="'201% & Over";
return fpl;
}
result6 = 'Federal Poverty Level: ' + fpl;
document.getElementById("demo").innerHTML = result6;
}
</script>
Else..If 语句中的逻辑运算符在 JavasScript 中的使用方式不同吗?
快速查看后,您在这一行有错误:
if (result3 > '1882.00' && income < '2033.00')
"result3" 确实未定义,请尝试使用 "income"
你的 income
值不属于你的任何 if
语句(我想,你想写 if (income > /* instead of < */ "2033.00")
,所以 fpl
仍然未定义
首先,让我们检查一下你的代码,因为你有一些错误,我会在错误的地方添加评论。
注意: 比较字符串时也要小心,例如 "400" > "100000"
将 return true
。所以如果你想比较值,在比较之前解析它们。
function FPL() {
var income = '4200.00';
var fs = '1';
//set a default value here to fpl or inside an else.
var fpl;
if(fs == '1') {
//on all these ifs, you dont have an else, then if your income doesnt fill your criteria, it will be undefined.
if(income < '1022.00')
fpl = "0-100%";
if (income > '1022.00' && income < '1882.00')
fpl = "101-185%";
if (result3 > '1882.00' && income < '2033.00') //result3 doesnt even exist, this will throw an error.
fpl = "186%-200%";
if (income < '2033.00')
fpl ="'201% & Over";
// if you return here, how do you expect the following code to execute?
// you just needed to continue the workflow
return fpl;
}
//this code is never executed, unless fs is different than 1 (but it is hardcoded)
result6 = 'Federal Poverty Level: ' + fpl;
document.getElementById("demo").innerHTML = result6;
}
这里你的代码没有错误并已修复。
function FPL() {
//parse the value to get the number.
var income = parseFloat('4200.00');
var fs = '1';
var fpl;
if (fs == '1') {
if (income < parseFloat('1022.00'))
fpl = "0-100%";
else if (income > parseFloat('1022.00') && income < parseFloat('1882.00'))
fpl = "101-185%";
else if (income > parseFloat('1882.00') && income < parseFloat('2033.00'))
fpl = "186%-200%";
else if (income < parseFloat('2033.00'))
fpl = "'201% & Over";
else
fpl = 'default value';
}
result6 = 'Federal Poverty Level: ' + fpl;
document.getElementById("demo").innerHTML = result6;
}
FPL();
<p id="demo"></p>
该代码用于根据收入 (var income) 选择联邦贫困水平 (var fpl) 百分比类别。当我 运行 这个脚本时,当我使用 && 逻辑运算符时,我的结果是 "undefined"。如果我使用 || 逻辑运算符,我会得到错误且相同的答案 - “101-185%” - 无论我使用什么数字 var income.
<p id="demo"></p>
<script>
function FPL() {
var income = '4200.00';
var fs = '1';
var fpl;
if(fs == '1') {
if(income < '1022.00')
fpl = "0-100%";
if (income > '1022.00' && income < '1882.00')
fpl = "101-185%";
if (result3 > '1882.00' && income < '2033.00')
fpl = "186%-200%";
if (income < '2033.00')
fpl ="'201% & Over";
return fpl;
}
result6 = 'Federal Poverty Level: ' + fpl;
document.getElementById("demo").innerHTML = result6;
}
</script>
Else..If 语句中的逻辑运算符在 JavasScript 中的使用方式不同吗?
快速查看后,您在这一行有错误:
if (result3 > '1882.00' && income < '2033.00')
"result3" 确实未定义,请尝试使用 "income"
你的 income
值不属于你的任何 if
语句(我想,你想写 if (income > /* instead of < */ "2033.00")
,所以 fpl
仍然未定义
首先,让我们检查一下你的代码,因为你有一些错误,我会在错误的地方添加评论。
注意: 比较字符串时也要小心,例如 "400" > "100000"
将 return true
。所以如果你想比较值,在比较之前解析它们。
function FPL() {
var income = '4200.00';
var fs = '1';
//set a default value here to fpl or inside an else.
var fpl;
if(fs == '1') {
//on all these ifs, you dont have an else, then if your income doesnt fill your criteria, it will be undefined.
if(income < '1022.00')
fpl = "0-100%";
if (income > '1022.00' && income < '1882.00')
fpl = "101-185%";
if (result3 > '1882.00' && income < '2033.00') //result3 doesnt even exist, this will throw an error.
fpl = "186%-200%";
if (income < '2033.00')
fpl ="'201% & Over";
// if you return here, how do you expect the following code to execute?
// you just needed to continue the workflow
return fpl;
}
//this code is never executed, unless fs is different than 1 (but it is hardcoded)
result6 = 'Federal Poverty Level: ' + fpl;
document.getElementById("demo").innerHTML = result6;
}
这里你的代码没有错误并已修复。
function FPL() {
//parse the value to get the number.
var income = parseFloat('4200.00');
var fs = '1';
var fpl;
if (fs == '1') {
if (income < parseFloat('1022.00'))
fpl = "0-100%";
else if (income > parseFloat('1022.00') && income < parseFloat('1882.00'))
fpl = "101-185%";
else if (income > parseFloat('1882.00') && income < parseFloat('2033.00'))
fpl = "186%-200%";
else if (income < parseFloat('2033.00'))
fpl = "'201% & Over";
else
fpl = 'default value';
}
result6 = 'Federal Poverty Level: ' + fpl;
document.getElementById("demo").innerHTML = result6;
}
FPL();
<p id="demo"></p>