为什么javascript if-else语句只注册读取最后一条else语句?

为什么javascript if-else语句只注册读取最后一条else语句?,javascript,software-lifecycle,Javascript,Software Lifecycle,我在LiveCycle中使用的javascript if-else语句只读取最后一条else语句,不会读取或识别前面的语句。如果你能看到我遗漏了什么,请帮助我。代码如下: if (annualUsage.rawValue < 1,000,000) { this.rawValue = annualUsage.rawValue * 0.1; } else if (annualUsage.rawValue >= 1,000,000 && annualUsage.rawVa

我在LiveCycle中使用的javascript if-else语句只读取最后一条else语句,不会读取或识别前面的语句。如果你能看到我遗漏了什么,请帮助我。代码如下:

if (annualUsage.rawValue < 1,000,000) 
{
this.rawValue = annualUsage.rawValue * 0.1;
}
else if (annualUsage.rawValue >= 1,000,000 && annualUsage.rawValue < 10,000,000) 
{
this.rawValue = annualUsage.rawValue * 0.2;
}
else (annualUsage.rawValue >= 10,000,000) 
{
this.rawValue = annualUsage.rawValue * 0.05;
}
if(annualUsage.rawValue<1000000)
{
this.rawValue=annualUsage.rawValue*0.1;
}
否则如果(annualUsage.rawValue>=1000000&&annualUsage.rawValue<10000000)
{
this.rawValue=annualUsage.rawValue*0.2;
}
其他(annualUsage.rawValue>=10000000)
{
this.rawValue=annualUsage.rawValue*0.05;
}
  • 从你的号码中去掉逗号?很像

    if(annualUsage.rawValue<1000000)

    等等

  • 另外,最后一条else语句没有条件,因此您可以 要么删除该条件

    else{

    或者将其转换为else-if语句

    else如果(annualUsage.rawValue>=10000000){


  • 您无意中误用了逗号运算符

    a、b
    将同时执行
    a
    b
    并计算为
    b

    因此,实际上传递给
    if
    s的值是
    000
    ,这是错误的


    此外,
    else
    后面的括号表达式成为一条语句(通过ASI),它是
    else
    子句的主体。
    {
    在启动始终执行的正常代码块之后

  • 从数字中删除逗号:

    if (annualUsage.rawValue < 1000000) 
    

  • 谢谢,删除逗号并在最后一条语句上对{}进行寻址可以识别第一条和最后一条语句,但是…第二条中间语句没有被读取?您是否先从所有语句中删除了逗号?因此您的所有数字看起来都像
    1000000
    ?…还可以尝试执行
    console.log(annualUsage.rawValue)
    并查看firebugyup中的结果,它没有读取我的(annualUsage.rawValue>=1000000&&annualUsage.rawValue<10000000)语句。有什么想法吗?首先尝试
    console.log(annualUsage.rawValue)
    ,看看你说了些什么,因为我觉得你的其他语句很好。如果说annualUsage没有定义,但其他语句有效?
    else  if(annualUsage.rawValue >= 10000000)