当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。
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: ...}要求
版本 3