JScript | 语言参考 |
switch 语句
当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。
switch (expression) {
case label :
statementlist
case label :
statementlist
...
default :
statementlist
}
参数
expression
要求值的表达式。
label
根据 expression 来匹配的标识符。如果 label === expression,则立即从冒号后的 statementlist 处开始执行,直到遇到一个可选的 break 语句,或到达 switch 语句的最后。
statementlist
要被执行的一个或多个语句。
说明
使用 default 子句来提供一个语句,该语句只在没有任何一个标签值与 expression 相匹配时才被执行。它可以出现在 switch 代码块内的任何地方。
可以指定零或多个 label 块。如果没有 label 和 expression 的值匹配,并且没有提供 default 情况,则不执行任何语句。
通过 switch 语句执行流程如下:
- 求 expression 的值并依次序查看 label,直到找到一个匹配。
- 如果 label 的值等于 expression 的值,则执行它相应的 statementlist。
继续执行,直到遇到一个 break 语句,或者 switch 语句结束。这意味着如果没有使用一个 break 语句,则多个 label 块被执行。 - 如果没有 label 等于 expression 的值,则跳转到 default 情况。 如果没有 default 情况,则跳转到最后一步。
- 继续执行紧接 switch 代码块末尾的语句。
示例
下面示例测试一个对象的类型:
function MyObject() { ...} switch (object.constructor){
case Date:
...
case Number:
...
case String:
...
case MyObject:
...
default:
...
}