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 相关文章推荐
js 判断脚本加载完毕的代码
Jul 13 Javascript
jQuery中$(function() {});问题详解
Aug 10 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
Oct 10 Javascript
jQuery延迟执行的实现方法
Dec 21 Javascript
BootStrap组件之进度条的基本用法
Jan 19 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
Mar 16 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
Dec 24 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
May 08 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
Apr 04 Javascript
如何解决js函数防抖、节流出现的问题
Jun 17 Javascript
JavaScript代码实现简单计算器
Dec 27 Javascript
AJAX检测用户名是否存在的方法
Mar 24 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
自己前几天写的无限分类类
2007/02/14 PHP
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
php接口技术实例详解
2016/12/07 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
tagName的使用,留一笔
2006/06/26 Javascript
修改发贴的编辑功能
2007/03/07 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
pycham查看程序执行的时间方法
2018/11/29 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
社区护士演讲稿
2014/08/27 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
学校运动会简讯
2015/07/20 职场文书
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android
Python实现视频自动打码的示例代码
2022/04/08 Python