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 04 Javascript
(JS实现)MapBar中坐标的加密和解密的脚本
May 16 Javascript
IE 当eval遇上function的处理
Aug 09 Javascript
javascript中使用正则计算中文长度的例子
Apr 29 Javascript
一段非常简单的js判断浏览器的内核
Aug 17 Javascript
js实现带按钮的上下滚动效果
May 12 Javascript
详解AngularJS中自定义指令的使用
Jun 17 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
Nov 22 Javascript
angular中实现控制器之间传递参数的方式
Apr 24 Javascript
Three.js基础学习教程
Nov 16 Javascript
JS实现提示效果弹出及延迟隐藏的功能
Aug 26 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 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
改进的IP计数器
2006/10/09 PHP
一个取得文件扩展名的函数
2006/10/09 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php微信开发之关注事件
2018/06/14 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
在Django同1个页面中的多表单处理详解
2017/01/25 Python
Python实现ATM系统
2020/02/17 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
jupyter notebook清除输出方式
2020/04/10 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
一个SQL面试题
2014/08/21 面试题
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
小学课外阅读总结
2014/07/09 职场文书
小学运动会演讲稿
2014/08/25 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
变长双向rnn的正确使用姿势教学
2021/05/31 Python
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers