• js的switch


     

            ​   swith语句:

            switch(表达式) {
            case 值1:
                语句体1;
                break;
        
            case 值2:
                语句体2;
                break;
        
            ...
            ...
        
            default:
                语句体 n+1;
                break;
            }

    switch 语句的结束条件【非常重要】

        
            - 情况a:遇到break就结束,而不是遇到default就结束。(因为break在此处的作用就是退出switch语句)
            - 情况b:执行到程序的末尾就结束。

    case穿透的问题

    switch 语句中的`break`可以省略,但一般不建议(对于新手而言)。否则结果可能不是你想要的,会出现一个现象:case穿透。
    例子
        
            
            var num = 4;
        
            //switch判断语句
            switch (num) {
                case 1:
                    console.log("星期一");
                    break;
                case 2:
                    console.log("星期二");
                    break;
                case 3:
                    console.log("星期三");
                    break;
                case 4:
                    console.log("星期四");
                //break;
                case 5:
                    console.log("星期五");
                //break;
                case 6:
                    console.log("星期六");
                    break;
                case 7:
                    console.log("星期日");
                    break;
                default:
                    console.log("你输入的数据有误");
                    break;
            }
    case4和case5中没有break,语句执行到case6才终止
        
        另外,语句的结束与 default 的顺序无关。
           

    switch 语句的实战举例:替换 if 语句

                实战开发中,经常需要根据接口的返回码 retCode 
    let retCode = 1003; // 返回码 retCode 的值可能有很多种情况
        
                    if (retCode == 0) {
                        alert('接口联调成功');
                    } else if (retCode == 101) {
                        alert('活动不存在');
                    } else if (retCode == 103) {
                        alert('活动未开始');
                    } else if (retCode == 104) {
                        alert('活动已结束');
                    } else if (retCode == 1001) {
                        alert('参数错误');
                    } else if (retCode == 1002) {
                        alert('接口频率限制');
                    } else if (retCode == 1003) {
                        alert('未登录');
                    } else if (retCode == 1004) {
                        alert('(风控用户)提示 活动太火爆啦~军万马都在挤,请稍后再试');
                    } else {
                        // 其他异常返回码
                        alert('系统君失联了,请稍候再试');
                    }

    修改

    let retCode = 1003; // 返回码 retCode 的值可能有很多种情况
        
                    switch (retCode) {
                        case 0:
                            alert('接口联调成功');
                            break;
                        case 101:
                            alert('活动不存在');
                            break;
        
                        case 103:
                            alert('活动未开始');
                            break;
        
                        case 104:
                            alert('活动已结束');
                            break;
        
                        case 1001:
                            alert('参数错误');
                            break;
        
                        case 1002:
                            alert('接口频率限制');
                            break;
        
                        case 1003:
                            alert('未登录');
                            break;
        
                        case 1004:
                            alert('(风控用户)提示 活动太火爆啦~军万马都在挤,请稍后再试');
                            break;
        
                        // 其他异常返回码
                        default:
                            alert('系统君失联了,请稍候再试');
                            break;
                    }    
    实战开发中,凡是有重复的地方,我们都必须要想办法简化。
    let day = 2;
    
                    switch (day) {
                        case 1:
                            console.log('work');
                            break;
    
                        case 2:
                            console.log('work');
                            break;
    
                        case 3:
                            console.log('work');
                            break;
    
                        case 4:
                            console.log('work');
                            break;
    
                        case 5:
                            console.log('work');
                            break;
    
                        case 6:
                            console.log('relax');
                            break;
    
                        case 7:
                            console.log('relax');
                            break;
    
                        default:
                            break;
                    }

    修改

    let day = 2;
    
                    switch (day) {
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                            console.log('work');
                            break; // 在这里放一个 break
    
                        case 6:
                        case 7:
                            console.log('relax');
                            break; // 在这里放一个 break
    
                        default:
                            break;
                    }
     
  • 相关阅读:
    整合Spring与Hibernate
    基本正则
    vue权限指令
    vue数字动态转换大写
    element ui 表格动态生成多级表头、一级表头,可无限嵌套
    vuex和vue-router全家桶
    element表格内容过多title提示
    HBuilder打包App方法
    mui底部选项卡切换页面
    mui框架的地步选项卡公用加载对应页面demo
  • 原文地址:https://www.cnblogs.com/yunhai666/p/12987851.html
Copyright © 2020-2023  润新知