switch语句
switch 语句专门用来设计多分支条件结构。与 if/clse 多分支结构相比, switch 结构更加简介,执行效率更高。
例:
switch(expr){
case value1:
statementList1
break;
case value2:
statementList2:
break;
...
case valuen:
statementListn
break;
default:
default statementList
}
switch 语句根据表达式 expr 的值,一次与 case 后表达式的值进行比较,如果相等,则执行其后的语句段,只有遇到 break 语句或者 switch 语句结束才终止,继续查找下一个 case。switch 语句包含一个可选的 default 语句,如果在前面的 case 中没有找到相等的条件。则执行default语句,它与 clse 语句类似。
例:
var id=1;
switch(id){
case 1:
console.log("普通会员");
break; //停止执行,跳出switch
case 2:
console.log("VIP会员");
break; //停止执行,跳出switch
case 3:
console.log("管理员");
break; //停止执行,跳出switch
default: //上述条件都不满足时,默认执行的代码
console.log("游客");
}
当 JavaScript 解析 switch 结构时,先计算条件表达式,然后机选第一个 case 子句后的表达式的值,并实用全等(===)运算符来检测两值是否相同。由于实用全等运算符,因此不会自动转换每个值的类型。
总结:
case 子句可以省略语句。这样当匹配时,会继续执行下一个 case 子句的语句,而不管一下个 case 条件是否满足。下面的示例演示了把普通会员和VIP会员合并再一起进行检测。
var id =1;
switch (id){
case 1:
case 2:
console.log("VIP会员");
break;
case 3:
console.log("管理员");
break;
default:
console.log("游客");
}
注意:
在 switch 语句中,case 子句只指明了执行起点,没有指明执行的终点;如果再 case 子句中没有 break 语句,就会发生连续执行的情况,从而忽略后面 case 子句的条件限制,这样就容易破坏 switch 结构的逻辑。如果再函数中实用 switch 语句,可以使用 return 语句终止 switch 语句,防止代码继续执行。