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 1.6发布 性能提升,同时包含大量破坏性变更
May 10 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
jquery实现模拟百分比进度条渐变效果代码
Oct 29 Javascript
jQuery-mobile事件监听与用法详解
Nov 23 Javascript
树结构之JavaScript
Jan 24 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
详解mpvue开发微信小程序基础知识
Sep 23 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
VUE兄弟组件传值操作实例分析
Oct 26 Javascript
Vue如何提升首屏加载速度实例解析
Jun 25 Javascript
Vue移动端项目实现使用手机预览调试操作
Jul 18 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
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
php Mysql日期和时间函数集合
2007/11/16 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
php页面缓存方法小结
2015/01/10 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
python频繁写入文件时提速的方法
2019/06/26 Python
Python list运算操作代码实例解析
2020/01/20 Python
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
应征英语教师求职信
2013/11/27 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
党课主持词大全
2015/06/30 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书