當指定的表達式的值與某個標簽匹配時,即執(zhí)行相應的一個或多個語句。
switch (expression) {
case label :
statementlist
case label :
statementlist
...
default :
statementlist
}
參數(shù)
- expression
- 要求值的表達式。
- label
- 根據(jù) expression 來匹配的標識符。如果 label === expression,則立即從冒號后的 statementlist 處開始執(zhí)行,直到遇到一個可選的 break 語句,或到達 switch 語句的最后。
- statementlist
- 要被執(zhí)行的一個或多個語句。
說明
使用 default 子句來提供一個語句,該語句只在沒有任何一個標簽值與 expression 相匹配時才被執(zhí)行。它可以出現(xiàn)在 switch 代碼塊內(nèi)的任何地方。
可以指定零或多個 label 塊。如果沒有 label 和 expression 的值匹配,并且沒有提供 default 情況,則不執(zhí)行任何語句。
通過 switch 語句執(zhí)行流程如下:
- 求 expression 的值并依次序查看 label,直到找到一個匹配。
- 如果 label 的值等于 expression 的值,則執(zhí)行它相應的 statementlist。
繼續(xù)執(zhí)行,直到遇到一個 break 語句,或者 switch 語句結束。這意味著如果沒有使用一個 break 語句,則多個 label 塊被執(zhí)行。
- 如果沒有 label 等于 expression 的值,則跳轉(zhuǎn)到 default 情況。如果沒有 default 情況,則跳轉(zhuǎn)到最后一步。
- 繼續(xù)執(zhí)行緊接 switch 代碼塊末尾的語句。
示例
下面示例測試一個對象的類型:
function MyObject() {
...}
switch (
object.constructor){
case
Date:
...
case
Number:
...
case
String:
...
case
MyObject:
...
default:
...
}
要求
版本 3
請參閱
break 語句 | if...else 語句