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 相关文章推荐
js chrome浏览器判断代码
Mar 28 Javascript
IE关闭时判断及AJAX注销案例学习
Feb 18 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 Javascript
jquery拖拽效果完整实例(附demo源码下载)
Jan 14 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
Aug 11 Javascript
利用node.js本地搭建HTTP服务器
Apr 19 Javascript
Node.Js中实现端口重用原理详解
May 03 Javascript
微信小程序自定义toast组件的方法详解【含动画】
May 11 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
Jan 18 Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 Javascript
详解Vue router路由
Nov 20 Vue.js
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新手入门学习方法
2011/05/08 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
python多进程操作实例
2014/11/21 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python中的推导式使用详解
2015/06/03 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
企业行政文员岗位职责
2013/12/03 职场文书
环保专业大学生职业规划设计
2014/01/10 职场文书
优秀公益广告词大全
2014/03/19 职场文书
工地材料员岗位职责
2015/04/11 职场文书
小学工作总结2015
2015/05/04 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书