条件判断语句指的是根据指定的条件所返回的结果(真或假或其他预定义的),来执行特定的语句。
JavaScript 支持两种条件判断语句:if
和 switch
。
if
语句适合于区间判断,switch
语句适用于等值判断。可以将 switch
理解为 if
的另一种结构清晰的写法。
这里的条件(condition)可以是任何表达式,并且求值结果不一定是布尔值,ECMAScript 会自动调用 Boolean()
函数将这个表达式的值转换为布尔值。
如果条件求值为 true
,则执行语句 statement1;如果条件求值为 false
,则执行 statement2。
如果只有一条代码块,可以不用写 {}
先判断条件1,若条件1满足则执行代码块1,其它不执行;
若条件1不满足则向下判断条件2,此时若条件2满足则执行代码块2,其它不执行;
若条件2依然不满足则继续向下判断,依次类推;
最终若以上条件都不满足,就执行else里的代码块n。
三元运算符是针对 if
判断的简写形式。
这里的每个 case(条件/分支)相当于:如果表达式等于后面的值,则执行下面的语句。
break
关键字会导致代码执行跳出 switch语句。如果没有break,则代码会继续匹配下一个条件(case穿透)。为避免不必要的条件判断,最好给每个条件后面都加上 break
语句。
default
关键字用于在任何条件都没有满足时指定默认执行的语句(相当于 else 语句)。
注意:switch语句在比较每个条件的值时会使用全等操作符,因为不会强制转换数据类型。(比如,字符串"10"不等于数值10)
switch语句可以用于所有数据类型,因此可以使用字符串甚至对象。
如果确实需要连续匹配几个条件,那么推荐写个注释表明是故意忽略了 break