JavaScript 如果/其他如果/其他控制

示例

在最简单的形式中,if可以这样使用条件:

var i = 0;

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

条件i < 1被评估,并且如果条件评估true为执行随后的程序段。如果结果为false,则跳过该块。

的if条件可以与扩展else块。如上检查条件一次,如果条件值等于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梯子退出在第一次成功。也就是说,在上面的示例中,如果的值为i0.5,则执行第一个分支。如果条件重叠,则执行在执行流程中出现的第一个条件。另一个条件,也可能是真实的,将被忽略。

  • 如果只有一条语句,则该语句的括号在技术上是可选的,e.g这很好:

    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"); // 警告,请参见文字!

    等效于:

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