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函数
Dec 22 Javascript
javascript小数计算出现近似值的解决办法
Feb 06 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
Dec 04 Javascript
网页整体变灰白色(兼容各浏览器)实例
Apr 21 Javascript
基于javascript实现单选及多选的向右和向左移动实例
Jul 25 Javascript
JS 清除字符串数组中,重复元素的实现方法
May 24 Javascript
Vue.js常用指令汇总(v-if、v-for等)
Nov 03 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
小程序日历控件使用方法详解
Dec 29 Javascript
Js通过AES加密后PHP用Openssl解密的方法
Jul 12 Javascript
解决vue无法侦听数组及对象属性的变化问题
Jul 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP中的string类型使用说明
2010/07/27 PHP
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
Javascript 圆角div的实现代码
2009/10/15 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
详解Python 函数如何重载?
2019/04/23 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
python 通过exifread读取照片信息
2020/12/24 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
库房管理员岗位职责
2015/02/12 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
2022年四月新番
2022/03/15 日漫
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技
Golang解析JSON对象
2022/04/30 Golang