var num=7;
switch(true){
<script>
function funcSwitch(sFlag) {
switch(sFlag){
case "Test1":
alert("Test1");
break;
case "Test2":
alert("Test2");
break;
default:;
}
}
funcSwitch("Test2");
</script>
switch(true){
case num < 0: alert("less than
0"); break;
case num >= 0 && num <= 10: alert("between 0 and 10"); break;
default: alert("more than 10");
}
case num >= 0 && num <= 10: alert("between 0 and 10"); break;
default: alert("more than 10");
}
switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。
在switch 中可以使用任何数据类型,case的值不一定常量,可以是变量,甚至表达式。
function funcSwitch(sFlag) {
switch(sFlag){
case "Test1":
alert("Test1");
break;
case "Test2":
alert("Test2");
break;
default:;
}
}
funcSwitch("Test2");
</script>
如果case 后面对应的不是一个字符串,而是一个变量的话。可以结合RegExp 达成。
<script>
var str1 = "Test1";
var str2 = "Test1";
function funcSwitch(sFlag)
{
var regExp = new RegExp(sFlag);
switch(true) {
case regExp.test(str1):
alert("Test1");
break;
case regExp.test(str2):
alert("Test2");
break;
default:;
}
}
funcSwitch("Test1");
</script>
var str1 = "Test1";
var str2 = "Test1";
function funcSwitch(sFlag)
{
var regExp = new RegExp(sFlag);
switch(true) {
case regExp.test(str1):
alert("Test1");
break;
case regExp.test(str2):
alert("Test2");
break;
default:;
}
}
funcSwitch("Test1");
</script>
--------------------------
作者:Justin
出处:http://justinw.cnblogs.com/
switch
(something) {
case
1:
todoA();
break
;
case
2:
todoB();
break
;
case
3:
todoC();
break
;
//...
}
这样的代码本身也没什么,只是可读性差一些,看起来有点费劲,JavaScript虽然支持switch-case,不过有一种更好的写法值得推广:
// JScript source code
//something的值是1、2、3...
var
cases = {
1: todoA,
2: todoB,
3: todoC
};
if
(cases[something]) {
cases[something]();
}