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