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 相关文章推荐
jQuery 跨域访问问题解决方法
Dec 02 Javascript
ext jquery 简单比较
Apr 07 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
Jul 31 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
javascript笛卡尔积算法实现方法
Apr 08 Javascript
jquery实现简单的轮换出现效果实例
Jul 23 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
Oct 22 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
Aug 05 Javascript
Array数组对象中的forEach、map、filter及reduce详析
Aug 02 Javascript
vue中引用swiper轮播插件的教程详解
Aug 16 Javascript
vue路由缓存的几种实现方式小结
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序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
php数组分页实现方法
2016/04/30 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
Python程序运行原理图文解析
2018/02/10 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
python实现二维数组的对角线遍历
2019/03/02 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
安装docker-compose的两种最简方法
2019/07/30 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
python关闭占用端口方式
2019/12/17 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
python定义类的简单用法
2020/07/24 Python
工程管理专业个人求职信范文
2013/12/07 职场文书
自我评价200字分享
2013/12/17 职场文书
承办会议欢迎词
2014/01/17 职场文书
教师个人自我鉴定
2014/02/08 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书