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 学习之完全手册 图文
May 29 Javascript
jQuery LigerUI 使用教程入门篇
Jan 18 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
Oct 28 Javascript
jQuery实现获取绑定自定义事件元素的方法
Dec 02 Javascript
分享使用AngularJS创建应用的5个框架
Dec 05 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
利用require.js与angular搭建spa应用的方法实例
Jul 19 Javascript
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
Mar 10 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
Sep 17 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遍历数组的几种方法
2012/03/22 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
Python进程间通信用法实例
2015/06/04 Python
Python基于动态规划算法计算单词距离
2015/07/25 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
zookeeper python接口实例详解
2018/01/18 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
土木工程毕业生推荐信
2013/10/28 职场文书
档案检查欢迎词
2014/01/13 职场文书
美术指导求职信
2014/03/17 职场文书
职工代表大会主持词
2014/04/01 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
反腐倡廉观后感
2015/06/08 职场文书
交通事故协议书范本
2016/03/19 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书