JS中switch语句的case子句的用法

工作原理:switch首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的表达式值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

具体执行过程:

//具体的执行,就是这样
//1. 计算switch小括号里面的表达式,得出结果a
//2. 计算case后边的表达式,得出结果b
//3. 进行验证 a === b 如果相等,则执行case,否则跳过这个case,继续2步骤
//4. 强制中断switch语句可以用return , break这俩个关键字在case后边的执行语句里,
//   可以跳出switch的验证
//加上break语句
//这样,只要有一次可以匹配通过,就会跳出其他的判断条件和if else if else 差不多

实例1:

1.
var id = 2;
var s = 1;
switch(id){//计算id的值
    case 2://计算常量
        alert('2 true');
    case 1 + 1://计算数字相加
        alert('1 + 1 true');
    case 1 * 2://计算数字相乘
        alert('1 * 2 true');
    case s * 2://计算变量
        alert('s * 2 true');
    default : //默认执行
        alert('default');
}
2.
switch(id){//计算id的值
    case 2://计算常量
        alert('2 true');
        break;
    case 1 + 1://计算数字相加
        alert('1 + 1 true');
        break;
    case 1 * 2://计算数字相乘
        alert('1 * 2 true');
        return ;//return也可以中断switch的case,并且会将整个方法中断
    case s * 2://计算变量
        alert('s * 2 true');
        break;
    default : //默认执行
        alert('default');
}
3.
function type(obj){
   switch(typeof obj){
       case 'string' : 
           return 'string';
       case 'function':
           return 'function';
       case 'object':
           return 'object';
       case 'number':
           return 'number';
   }
}

实例2:

1.
function case1(num){ 
    switch(num){ 
        case 1: 
            document.writeln("show 1!!"); 
            break; 
        case 2: 
            document.writeln("show 2!!"); 
            break; 
        case 3: 
            document.writeln("show 3!!"); 
            break; 
        default: 
            document.writeln("show others!!"); 
            break; 
    } 
}
2.
function case2(num){ 
    switch(num){ 
        case 1: 
            document.writeln("show 1!!"); //沒有break,所以會繼續執行case 2 
        case 2: 
            document.writeln("show 2!!"); 
            break; 
        case 3: 
            document.writeln("show 3!!"); //沒有break,所以會繼續執行case 4 
        case 4: 
            document.writeln("show 4!!"); 
            break; 
        default: 
            document.writeln("show others!!"); 
            break; 
    } 
}
3.
function case3(num){ 
    switch(num){ 
        case 1: 
        case 2: //相當於if(num==1 || num==2) 
            document.writeln("show 1 or 2!!"); 
            break; 
        case 3: 
        case 4: //相當於if(num==3 || num==4) 
            document.writeln("show 3 or 4!!"); 
            break; 
        default: //相當於else 
            document.writeln("show others!!"); 
            break; 
    } 
}
4.
function case4(num){ 
    switch(f(num)){ 
        case 1: 
        case 2: //相當於if(num==1 || num==2) 
            document.writeln("show 1 or 2!!"); 
            break; 
        case 3: 
        case 4: //相當於if(num==3 || num==4) 
            document.writeln("show 3 or 4!!"); 
            break; 
        default: //相當於else 
            document.writeln("show others!!"); 
            break; 
    } 
} 
5. 
function case5(num){ 
    switch(num<=2){ //case可以为表达式
        case true: 
            document.writeln("num <= 2"); 
            break; 
        case false: 
            document.writeln("num > 2"); 
            break; 
    } 
} 
6.//表示一个范围
function case6(x){
    switch(true){ 
        case x>0&&x<10: 
            alert(1); 
            break; 
        case x>=10&&x<20: 
            alert(2); 
            break; 
    } 
}
又如比如表示范围90~100,
function case7(num){
    switch(true){
        case num>90&&num<100:
            alert("hello");
            break;
    }
}


转载于:https://my.oschina.net/u/2331760/blog/402115

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值