如果 Else If Else Control

在最简单的形式中,可以使用 if 条件,如下所示:

var i = 0;

if (i < 1) {
    console.log("i is smaller than 1");
}

评估条件 i < 1,如果评估为 true,则执行后面的块。如果它评估为 false,则跳过该块。

if 条件可以扩展 if 条件。如上所述检查条件一次,并且如果它评估为 false,则将执行二级块(如果条件是 true 则将跳过该二级块)。一个例子:

if (i < 1) {
    console.log("i is smaller than 1");
} else {
    console.log("i was not smaller than 1");
}

假设 else 块只包含另一个 if 块(可选择一个 else 块),如下所示:

if (i < 1) {
    console.log("i is smaller than 1");
} else {
    if (i < 2) {
        console.log("i is smaller than 2");
    } else {
        console.log("none of the previous conditions was true");
    }
}

然后还有一种不同的写入方式可以减少嵌套:

if (i < 1) {
    console.log("i is smaller than 1");
} else if (i < 2) {
    console.log("i is smaller than 2");
} else {
    console.log("none of the previous conditions was true");
}

关于上述例子的一些重要脚注:

  • 如果任何一个条件被评估为 true,则不会评估该块链中的其他条件,并且将不执行所有相应的块(包括 else 块)。

  • else if 部件的数量几乎是无限的。上面的最后一个例子只包含一个,但你可以拥有任意多个。

  • if 语句中的条件可以是任何可以强制转换为布尔值的条件,有关详细信息,请参阅布尔逻辑主题 ;

  • if-else-if 梯子在第一次成功时退出。也就是说,在上面的例子中,如果 i 的值是 0.5,则执行第一个分支。如果条件重叠,则执行执行流程中出现的第一个标准。另一个条件,也可能是真的被忽略了。

  • 如果你只有一个语句,那个语句周围的大括号在技术上是可选的,例如这很好:

    if (i < 1) console.log("i is smaller than 1");
    

    这也可行:

    if (i < 1) 
        console.log("i is smaller than 1");
    

    如果你想在 if 块中执行多个语句,那么它们周围的花括号是必需的。仅使用缩进是不够的。例如,以下代码:

    if (i < 1) 
        console.log("i is smaller than 1");
        console.log("this will run REGARDLESS of the condition"); // Warning, see text!
    

    相当于:

    if (i < 1) {
        console.log("i is smaller than 1");
    }
    console.log("this will run REGARDLESS of the condition");