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写的一个链表实现代码
Oct 25 Javascript
JQuery 解析多维的Json数据格式
Nov 02 Javascript
父子窗体间传递JSON格式的数据的代码
Dec 25 Javascript
邮箱下拉自动填充选择示例代码附图
Apr 03 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
深入理解JavaScript程序中内存泄漏
Mar 17 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
详解vue-cli中配置sass
Jun 21 Javascript
babel的使用及安装配置教程
Feb 22 Javascript
对angularJs中ng-style动态改变样式的实例讲解
Sep 30 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
Sep 14 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中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
JQuery之focus函数使用介绍
2013/08/20 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
老乡聚会通知
2015/04/23 职场文书
高中班长竞选稿
2015/11/20 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
浅谈Redis的几个过期策略
2021/05/27 Redis
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS