首页 > 代码库 > switch

switch

var num=7;
switch(true){
 
case num < 0: alert("less than0"); break;
       case num >= 0 && num<= 10: alert("between 0 and 10"); break;
       default: alert("more than 10");
}
switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。
 
在switch 中可以使用任何数据类型,case的值不一定常量,可以是变量,甚至表达式。
 
<script>
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>
 
--------------------------
作者: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]();
}