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 相关文章推荐
!DOCTYPE声明对JavaScript的影响分析
Apr 12 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
Jun 24 Javascript
jquery attr方法获取input的checked属性问题
May 26 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
简单实现JS倒计时效果
Dec 23 Javascript
详解如何用模块化的方式写vuejs
Dec 16 Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 Javascript
angular4笔记系列之内置指令小结
Nov 09 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
JavaScript 去重和重复次数统计
Mar 31 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
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
vue分页插件的使用方法
2019/12/25 Javascript
python 域名分析工具实现代码
2009/07/15 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
详解Python3中yield生成器的用法
2015/08/20 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
财务工作个人求职的自我评价
2013/12/19 职场文书
实习报告评语
2014/04/26 职场文书
支部组织生活会方案
2014/06/10 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
小英雄雨来观后感
2015/06/09 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
python井字棋游戏实现人机对战
2022/04/28 Python