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 相关文章推荐
使用prototype.js 的时候应该特别注意的几个问题.
Apr 12 Javascript
javascript中的有名函数和无名函数
Oct 17 Javascript
jquery JSON的解析方式
Jul 25 Javascript
基于jQuery的js分页代码
Jun 10 Javascript
javascript Event对象详解及使用示例
Nov 22 Javascript
jquery操作select大全
Apr 25 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
Nov 25 Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 jQuery
微信小程序实现倒计时补零功能
Jul 09 Javascript
JavaScript递归函数定义与用法实例分析
Jan 24 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 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
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
php数组查找函数总结
2014/11/18 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
JavaScript File分段上传
2016/03/10 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
带你了解python装饰器
2017/06/15 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python中整数的缓存机制讲解
2019/02/16 Python
基于python实现雪花算法过程详解
2019/11/16 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
动态密码技术
2012/10/18 面试题
平面设计自荐信
2013/10/07 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
销售员试用期自我评价
2014/09/15 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
综合素质自我评价评语
2015/03/06 职场文书
对讲机知识
2022/04/07 无线电
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python