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 相关文章推荐
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
Feb 13 Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 Javascript
详解JavaScript中的4种类型识别方法
Sep 14 Javascript
vue loadmore组件上拉加载更多功能示例代码
Jul 19 Javascript
微信小程序-getUserInfo回调的实例详解
Oct 27 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
Jan 08 Javascript
vue实现通讯录功能
Jul 14 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
Nov 30 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
解决vue中el-tab-pane切换的问题
Jul 19 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时间和日期函数详解
2015/05/08 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
浅谈js中的闭包
2015/03/16 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
大学毕业登记表自我鉴定
2013/10/09 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
浪费资源的建议书
2014/03/12 职场文书
仓库管理计划书
2014/05/04 职场文书