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 遮罩层实现(mask)实现代码
Jan 09 Javascript
javascript与有限状态机详解
May 08 Javascript
jQuery中removeAttr()方法用法实例
Jan 05 Javascript
javascript滚轮控制模拟滚动条
Oct 19 Javascript
jquery表单验证插件validation使用方法详解
Jan 20 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
详解在React中跨组件分发状态的三种方法
Aug 09 Javascript
详解vue 路由跳转四种方式 (带参数)
Apr 28 Javascript
layui实现多图片上传并限制上传的图片数量
Sep 26 Javascript
浅析Vue 中的 render 函数
Feb 28 Javascript
JavaScript Array.flat()函数用法解析
Sep 02 Javascript
Taro小程序自定义顶部导航栏功能的实现
Dec 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
调频问题解答
2021/03/01 无线电
php 删除无限级目录与文件代码共享
2008/11/22 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
eclipse php wamp配置教程
2016/06/30 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
Python os模块常用方法和属性总结
2020/02/20 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
关于廉洁的广播稿
2014/01/30 职场文书
中学自我评价
2014/01/31 职场文书
教师演讲稿大全
2014/05/16 职场文书
酒店节能减排方案
2014/05/26 职场文书
交通安全月活动总结
2015/05/08 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL