如果 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");