Javascript JS中嵌套的if语句是如何工作的?

Javascript JS中嵌套的if语句是如何工作的?,javascript,if-statement,nested,Javascript,If Statement,Nested,我对JS中的嵌套if语句有问题。让我向您展示代码示例: if (code < 699) { if(hour > 6 && hour < 20) { $("#weatherIcon").html("<i class='wi wi-day-" + icon + "'></i>"); } else { if(icon == "sunny")

我对JS中的嵌套if语句有问题。让我向您展示代码示例:

    if (code < 699) {
        if(hour > 6 && hour < 20) {
            $("#weatherIcon").html("<i class='wi wi-day-" + icon + "'></i>");
        }
        else {
            if(icon == "sunny") {
                $("#weatherIcon").html("<i class='wi wi-night-clear'></i>");
            }
                $("#weatherIcon").html("<i class='wi wi-night-alt-" + icon + "'></i>");
            }
        }

        $("#weatherIcon").html("<i class='wi wi-" + icon + "'></i>");
   }
if(代码<699){
如果(小时数>6和小时数<20){
$(“#weatherIcon”).html(“”);
}
否则{
如果(图标==“阳光”){
$(“#weatherIcon”).html(“”);
}
$(“#weatherIcon”).html(“”);
}
}
$(“#weatherIcon”).html(“”);
}
我添加了一个打印语句,以便检查
code
hour
图标
(值为
502
17
rain mix
)的值,因此我应该返回
,但我总是在最后一行结束,以便输出,例如
,为什么?我没有看到什么? 非常感谢您的帮助,谢谢

您可能正在输入
if
块,就像您想要的那样。紧接着,你也在跑最后一行

类似地,考虑一下,如果你这样做了

if(foo) {
   bar = 7
}
bar = 0;
bar
将始终在该代码的末尾显示为
0
。如果
foo
为真,则
bar
将非常短暂地按
7
,然后立即设置为
0


如果您真的希望在
code<699
失败时运行该行,请将其放在最外层
If
下的
else
块中,而不是一直运行,请始终覆盖If中的任何内容,您应该使用else,或者将其移动到If之前,让If覆盖默认内容。请尝试以下操作:

if (code < 699) {
  if (hour > 6 && hour < 20) {
    $("#weatherIcon").html("<i class='wi wi-day-" + icon + "'></i>");
  } else {
    if (icon == "sunny") {
      $("#weatherIcon").html("<i class='wi wi-night-clear'></i>");
    } else {
      $("#weatherIcon").html("<i class='wi wi-night-alt-" + icon + "'></i>");
    }
  }
} else {
  $("#weatherIcon").html("<i class='wi wi-" + icon + "'></i>");
}
if(代码<699){
如果(小时数>6和小时数<20){
$(“#weatherIcon”).html(“”);
}否则{
如果(图标==“阳光”){
$(“#weatherIcon”).html(“”);
}否则{
$(“#weatherIcon”).html(“”);
}
}
}否则{
$(“#weatherIcon”).html(“”);
}

为什么不设置默认类并根据您的条件更改类

let code=502;
小时=17;
让iconClass=‘wi雨水混合’;
如果(代码<699){
如果(小时数>6和小时数<20){
iconClass=‘wi日雨混合’;
}否则{
如果(图标==“阳光”){
iconClass=‘wi夜间清除’;
}否则{
iconClass=‘wi夜间雨混合’;
}
}
}
$(“#weatherIcon”).html(“”);
//看天气课。。
console.log($('.wi').attr('class'))


因为if后面的行将运行并覆盖if中的代码。您共享的代码中有一个额外的
}
。if图标中缺少一个
else
。。。。同样在您所附的代码中,只要
code<699
,然后
$(“#weatherIcon”).html(”
将作为最后一条语句执行,并将覆盖您的其他
.html()
语句Hanks@epascarello,不知道if always需要其他语句(我来自python,所以…)。我只是复制了代码的一小部分,因此可能遗漏了
}
。无论如何,谢谢,@krillgarThanks,@daniel-h我刚从Python那里知道,可以用else部分编写if语句,所以我认为JS也是如此。我想我错了。。。另一个问题:为什么我会被降级?这个问题有那么愚蠢吗@米奇·马奥尼不是我贬低你,但是到处都是仇恨者。疯子使得新手很容易在这里发帖。不管怎样,谢谢你,伙计!