六、条件语句

条件语句用于根据不同的条件执行不同的代码块。

如果语句

只有当括号内的表达式被求值为 true 时,if语句才会执行。在 JavaScript 中,这不必是布尔表达式。它可以是任何表达式,在这种情况下,零、null、NaN、空字符串和未定义的变量被计算为 false,而所有其他值为 true。

if (x < 1) {

document.write("x < 1");

}

为了测试其他条件,if语句可以被任意数量的else if子句扩展。只有当前面的条件为假时,才会测试每个附加条件。

else if (x > 1) {

document.write("x > 1");

}

对于处理所有其他情况,可以在末尾有一个else子句,如果所有先前的条件都为假,则执行该子句。

else {

document.write("x == 1");

}

如果只需要有条件地执行一条语句,可以省去花括号。但是,始终包含它们被认为是一种好的做法,因为它们可以提高代码的可读性。

if (x < 1)

document.write("x < 1");

else if (x > 1)

document.write("x > 1");

else

document.write("x == 1");

交换语句

switch语句检查表达式和一系列 case 标签之间的相等性,然后将执行传递给匹配的 case。表达式可以是任何类型,并且将使用严格比较(===)来匹配案例标签。开关可以包含任意数量的 case 子句,并且可以以处理所有其他情况的默认标签结束。

switch (x) {

case 0: document.write("x is 0"); break;

case 1: document.write("x is 1"); break;

default: document.write("x is not 0 or 1"); break;

}

注意,每个 case 标签后的语句以关键字break结束,以跳过开关的其余部分。如果省略了 break,执行将一直进行到下一个案例,如果需要以相同的方式评估几个案例,这将非常有用。

三元运算符

除了ifswitch语句之外,还有三元运算符(?:,它为单个if else语句提供了快捷方式。这个运算符有三个表达式。如果第一个为真,则计算并返回第二个表达式;如果为假,则计算并返回第三个。

// Ternary operator expression

y = (x === 1) ? 1 : 2;

在 JavaScript 中,该运算符也可以用作独立的代码语句,而不仅仅是表达式。

// Ternary operator statement

(x === 1) ? y = 1 : y = 2;

编程术语“表达式”指的是计算出一个值的代码,而语句是以分号或右花括号结束的代码段。