JS中比Switch...Case更优雅的多条件判断写法


Posted in Javascript onSeptember 05, 2019

前言

前几天,本人负责编写网站上线的环境判断功能,其中涉及到大量多条件判断的code。对于多条件判断写法,大部分程序员都是采用if...else if...else或者switch...case的写法,但是有一种多条件判断写法,比传统写法更加有趣且优雅——对象属性判断法。

实例展示

废话不多说了,下面直接用三个实例,给大家分别展示三种不同的多条件判断写法。

1. if...else if...else

function whatFood(mealtime) {
 let food = '';

 if (mealtime === 'breakfasttime') {
  food = 'egg';
 } else if (mealtime === 'lunchtime') {
  food = 'vegetable'
 } else if (mealtime === 'dinnertime') {
  food = 'fruit'
 } else {
  food = 'cookie'
 }

 return food;
}

2. switch...case

function whatFood(mealtime) {
 let food = '';

 switch (mealtime) {
  case 'breakfasttime':
   food = 'egg';
   break;
  case 'lunchtime':
   food = 'vegetable';
   break;
  case 'dinnertime':
   food = 'fruit';
   break;
  default:
   food = 'cookie';
 }

 return food;
}

3. 对象属性判断法

function whatFood(mealtime) {

 const food = {
  breakfasttime: 'egg',
  lunchtime: 'vegetable',
  dinnertime: 'fruit'
 }

 return food[mealtime] ? food[mealtime] : 'cookie';
}

总结

相信你通过上面三个实例,已经看到了不同写法孰优孰劣,如果你有更好的多条件判断写法,欢迎留言讨论,祝工作顺利,生活愉快。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
浅析offsetLeft,Left,clientLeft之间的区别
Nov 30 Javascript
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
JavaScript 基本概念
Jan 20 Javascript
Bootstrap实现默认导航栏效果
Sep 21 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
Jan 05 Javascript
JavaScript截屏功能的实现代码
Jul 28 Javascript
vue router学习之动态路由和嵌套路由详解
Sep 21 Javascript
如何解决js函数防抖、节流出现的问题
Jun 17 Javascript
基于Layui自定义模块的使用方法详解
Sep 14 Javascript
微信小程序实现上传多张图片、删除图片
Jul 29 Javascript
vue 调用 RESTful风格接口操作
Aug 11 Javascript
layer实现弹出层自动调节位置
Sep 05 #Javascript
vue使用i18n实现国际化的方法详解
Sep 05 #Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
Sep 05 #Javascript
一文看懂如何简单实现节流函数和防抖函数
Sep 05 #Javascript
React路由鉴权的实现方法
Sep 05 #Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
Sep 05 #Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 #Javascript
You might like
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
php pthreads多线程的安装与使用
2016/01/19 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
新手简单了解vue
2019/05/29 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
Python面向对象之继承代码详解
2018/01/29 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
python实现自动发送报警监控邮件
2018/06/21 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python ini文件常用操作方法解析
2020/04/26 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
c语言常见笔试题总结
2016/09/05 面试题
社区健康教育实施方案
2014/03/18 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
举起手来观后感
2015/06/09 职场文书