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 相关文章推荐
html数组字符串拼接的最快方法
Sep 16 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
Feb 12 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 Javascript
微信小程序页面传值实例分析
Apr 19 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
Webpack中SplitChunksPlugin 配置参数详解
Mar 24 Javascript
js实现简单商品筛选功能
Feb 02 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进程之间实现共享内存的方法
2014/06/13 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
JavaScript 变量作用域分析
2011/07/04 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
python实现的udp协议Server和Client代码实例
2014/06/04 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
Python 忽略文件名编码的方法
2020/08/01 Python
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
体育学院毕业生自荐信
2013/11/03 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
终止劳动合同协议书
2014/04/14 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
英语求职信范文
2014/05/23 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
销售人员工作自我评价
2014/09/21 职场文书