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 相关文章推荐
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
关于JavaScript的with 语句的使用方法
May 09 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
浅谈JavaScript异常处理语句
Jun 26 Javascript
js实现微博发布小功能
Jan 12 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
基于zepto.js实现手机相册功能
Jul 11 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
今天,小程序正式支持 SVG
Apr 20 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
javascript getElementsByName()的用法说明
2009/07/31 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python实现的简单算术游戏实例
2015/05/26 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
python通过socket查询whois的方法
2015/07/18 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
银行求职信个人范文
2013/12/16 职场文书
2014年端午节活动方案
2014/03/11 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
上诉答辩状范文
2015/05/22 职场文书
Java基础——Map集合
2022/04/01 Java/Android
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript