文档章节

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

文文1
 文文1
发布于 2015/04/15 22:33
字数 692
阅读 617
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

工作原理: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;
    }
}


© 著作权归作者所有

文文1
粉丝 26
博文 512
码字总数 158580
作品 0
长沙
程序员
私信 提问
加载中

评论(0)

[译]大哥你JavaScript可能不太需要switch

译原文: www.valentinog.com/blog/switch… 作者:Valentino 译:黄梵高 无"switch" 不欢 Java的大佬非常喜欢switch,JavaScript开发人员也是如此。老实说,我们的开发人员很懒惰,对于像我...

黄梵高
04/26
0
0
转行学前端的第 29 天 : 了解 ECMAScript 语句

我是小又又,住在武汉,做了两年新媒体,准备用 6 个月时间转行前端。 今日学习目标 昨天基于一些页面搜索,学习了《JavaScirpt 高级程序设计》(第三版) 第 3 章节中的 3.5 操作符。所以,今...

小又又
05/05
0
0
大哥你JavaScript可能不太需要switch

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 无"switch" 不欢 Java的大佬非常喜欢switch,JavaScript开发人员也是如此。老实说,...

云栖号资讯小哥
04/27
0
0
重新巩固JS(三)——JavaScript语句

重新巩固JS系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第三篇。 其他JS重新巩固系列: 重新巩固JS(一)——JavaScript基本类型 重新巩固JS(二)——JavaScript操作符与表...

码飞_CC
2019/05/22
0
0
前端基础(二):变量声明的6种方法

字数:2869 阅读时间:10分钟 最新的ECMAScript规范中,变量声明有var、function、let、const、import、class六种方法。 var 语法: var varname [= value1 [, vaname1[,valname2 ...]]]; 对...

老司机带你撸代码
2018/06/09
263
0

没有更多内容

加载失败,请刷新页面

加载更多

数据结构和算法 | 第一部分第五课:算法复杂度实践

>作者 谢恩铭,公众号「程序员联盟」。 转载请注明出处。 原文:https://www.jianshu.com/p/060ef52580af >《数据结构和算法》全系列 内容简介 前言 寻找最大和最小的元素 寻找不重复的元素 ...

程序员联盟_
10分钟前
8
0
tomcat项目改造->jerryrat

先做一点笔记防止自己忘了,还有很多小细节要慢慢调试, 有些其实也不是漏洞,但是等保测试有些特殊的情况,只能去做兼容性的处理 1:编译tomcat8 https://tomcat.apache.org/download-80.cgi...

国产大熊猫
11分钟前
25
0
aop:aspect与aop:advisor的区别

https://www.jianshu.com/p/40f79da0cdef

osc_6jhxf9ab
11分钟前
12
0
Python破解24点游戏,从此打扑克就没输过

文源网络,仅供学习之用,如有侵权请联系删除。 24点游戏 对于任意给定的四张扑克牌,计算是否有赢得24点游戏的方法(即使用加、减、乘、除四则运算凑成24的方法);如果有的话,列出所有可能...

Python圈子
11分钟前
12
0
阿里短信回执.net sdk的bug导致生产服务cpu 100%排查

一:背景 1. 讲故事 去年阿里聚石塔上的所有isv短信通道全部对接阿里通信,我们就做了对接改造,使用阿里提供的.net sdk。 网址:https://help.aliyun.com/document_detail/114480.html 同事...

osc_slnrw1du
12分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部