switch语句的妙用(必看篇)


Posted in Javascript onOctober 03, 2016

switch语句的普通用法很简单,如下:

var a = 3;
switch (a) {
  case 1:
    console.log(a);
    break;
  case 2:
  case 3:
    console.log(a);
    break;
  default:
    break;
}

这里a和case列表中从上而下逐一做比较,如果匹配就执行case中的代码,若有break则跳出,无break则继续往下匹配,直到新的匹配和break或switch代码块结束。

注意:

a和case值的匹配算法是执行严格相等比较的(‘==='),通常a和case的值都是简单值。

case的值除了简单值之外,还可以是各种表达式,switch (a){...}中的a会和case中的表达式的结果值进行比较(“===”),由此,我们可以这样:

var a = [4], b = '3';

function foo(a, b) {
  return Math.abs(a - b) < 2;
}

switch (true) {
  case !(a && b):  //过滤掉a,b其中有为‘假值'的情况
    console.log('a:'+a,' b:'+b);
    break;
  case foo(a,b):  //当a,b的差值在2以内,foo函数返回true
    console.log('a - b < '+Math.abs(a-b));
  case a == b:
    console.log(a+'=='+b);
    break;
  case a < b:
    console.log(a+'<'+b);
    break;
  case a > b:
    console.log(a+'>'+b);
    break;
  default:
    break;
}

以上例子中,true和每个case的表达式的值进行严格相等比较,当且仅当case表达式的值为布尔值true时才匹配,任何其他真值都不匹配。

注意:case !(a && b): 必须把&&、||运算符的结果进行显示转换为布尔值,才能匹配(因为&&、||的表达式的返回值不是布尔类型,它返回的是表达式中第一个为true、或第一个为false的那个值)

所以,只要你想得到的,只要符合规则,都能用switch实现!就是不知道这样写的代码好不好了!

以上就是小编为大家带来的switch语句的妙用(必看篇)全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
基于JQuery实现的图片自动进行缩放和裁剪处理
Jan 31 Javascript
jquery、js操作checkbox全选反选
Mar 12 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
Mar 16 Javascript
jQuery中element选择器用法实例
Dec 29 Javascript
JavaScript学习笔记之数组的增、删、改、查
Mar 23 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 Javascript
webpack4+react多页面架构的实现
Oct 25 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
深入理解javascript中的this
Feb 08 Javascript
js中scrollTop()方法和scroll()方法用法示例
Oct 03 #Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
Oct 03 #Javascript
JavaScript对象创建模式实例汇总
Oct 03 #Javascript
js实现的光标位置工具函数示例
Oct 03 #Javascript
js获取腾讯视频ID的方法
Oct 03 #Javascript
关于js二维数组和多维数组的定义声明(详解)
Oct 02 #Javascript
微信小程序 navigation API实例详解
Oct 02 #Javascript
You might like
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
最省空间的计数器
2006/10/09 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python list是否包含另一个list所有元素的实例
2018/05/04 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
python线程池如何使用
2020/05/28 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
如何使用PHP session
2015/04/21 面试题
优秀教师获奖感言
2014/01/31 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
聚美优品励志广告词
2014/03/14 职场文书
小学生安全演讲稿
2014/04/25 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书