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 相关文章推荐
js实现ASP分页函数 HTML分页函数
Sep 22 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
JavaScript中的acos()方法使用详解
Jun 14 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 Javascript
Node.js中process模块常用的属性和方法
Dec 13 Javascript
javascript 显示全局变量与隐式全局变量的区别
Feb 09 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
vue实现动态列表点击各行换色的方法
Sep 13 Javascript
vue-cli项目配置多环境的详细操作过程
Oct 30 Javascript
利用Webpack实现小程序多项目管理的方法
Feb 25 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 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+DBM的同学录程序(1)
2006/10/09 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
php生成二维码
2015/08/10 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
jQuery使用手册之一
2007/03/24 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
python列表返回重复数据的下标
2020/02/10 Python
python求解汉诺塔游戏
2020/07/09 Python
Python远程方法调用实现过程解析
2020/07/28 Python
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
AJax面试题
2014/11/25 面试题
采购主管岗位职责
2014/02/01 职场文书
遗嘱继承公证书
2014/04/09 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
Pytest中skip和skipif的具体使用方法
2021/06/30 Python
Python采集股票数据并制作可视化柱状图
2022/04/04 Python