最新要闻
- 天天快看:携程梁建章建议:取消中考 缩短中小学学制 提前2年上班
- 时代变了!日系豪华败走中国:停产停售、官网504、全面退场
- 【天天播资讯】《春晚》收视率史低 2023年很多节目真实生活取材 这次必看
- 全球报道:干掉致命疾病!全球首款蜜蜂疫苗获批
- 转子发动机回归!马自达官宣:增程式版MX-30本月发布
- 环球速读:解决安卓四大不可能 李杰:一加11 16GB流畅用四年
- 环球快资讯:再也不怕侧方停车!现代展示e-Corner系统:还能“坦克掉头”
- 百事通!成了!微信:视频号用户总使用时长接近朋友圈80%
- 天天要闻:开袋即食 一口弹牙 大牌优形肉肠0.99元/根(商超2.5元)
- 快资讯:期待!《生化危机4:重制版》威斯克或将登场
- 特斯拉门店:降价维权后销量翻倍!全国一天提车量超1万台
- 2023支付宝集五福最全攻略 神秘玩法千万别错过
- 琥珀银杏果是什么东西?琥珀银杏果是什么地方的菜?
- 兵长一米六是什么意思?兵长一米六顺口溜
- 美髯公指的是谁?美髯公是什么意思?
- 金坷垃是什么意思?金坷垃是什么时候的梗?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
提升代码可读性,减少if-else的几个小技巧
前言
相信大家或多或少都接触过拥有庞大if else
的项目代码吧,多重嵌套的if else
在维护的时候真的让人很恼火,有时候一个 bug 排查下来,严重感觉身体被掏空。
本文并未有消灭或歧视if else
的意思,if else
的好用都知道,这里只是在某些特定场景为大家额外提供一种思路,增加我们代码的可读性。
【资料图】
短路运算
Javascript 的逻辑或||
的短路运算有时候可以用来代替一些比较简单的if else
逻辑或
||
的短路运算:若左边能转成true,返回左边式子的值,反之返回右边式子的值。
下面用一个简单的案例来表述
let cif(a){ c = a} else { c = b}
大家看着上面的代码会难受嘛(本人有一丢丢的强迫症),明明就是一个很简单的判断却需要写好几行代码才能实现。这个时候我们就可以用短路运算去简化我们的代码啦。
let c = a || b
这样看起来是不是就简洁了很多。
三元运算符
三元运算符我觉得大家应该都很熟悉吧,很多时候简单的一些判断我们都可以使用三元运算符去替代if else
,这里只推荐一层三元运算符,因为多层嵌套的三元运算符也不具备良好的可读性。
例子:条件为 true 时返回1,反之返回0:
const fn = (nBoolean) { if (nBoolean) { return 1 } else { return 0 } }// 使用三元运算符const fn = (nBoolean) { return nBoolean ? 1 : 0}
三元运算符使用的地方也比较多,比如:条件赋值,递归...
1 // num值在nBoolean为true时为10,否则为52 let num = nBoolean ? 10 : 5;3 // 求0-n之间的整数的和4 let sum = 0;5 function add(n) {6 sum += n;7 return n >= 2 ? add(n - 1) : result;8 }9 let num = add(10); //55
switch case
上述的两种方式:短路运算跟三元运算虽然很好用,代码也很简洁,不过都只能用于简单的判断,遇到多重条件判断就不能使用了。
对于switch case
,虽然它的可读性确实比else if
更高,但是我想大家应该都觉得它写起来比较麻烦吧(反正我觉得很麻烦)。
例:有A、B、C、D四种种类型,在A、B的时候输出1,C输出2、D输出3,默认输出0。
1 let type = "A"; 2 //if else if 3 if (type === "A" || type === "B") { 4 console.log(1); 5 } else if (type === "C") { 6 console.log(2); 7 } else if (type === "D") { 8 console.log(3); 9 } else {10 console.log(0);11 }12 //switch case13 switch (type) {14 case "A":15 case "B":16 console.log(1);17 break;18 case "C":19 console.log(2);20 break;21 case "D":22 console.log(3);23 break;24 default:25 console.log(0);26 }
对象配置/策略模式
对象配置看起来跟策略模式
差不多,都是根据不同得参数使用不同得数据/算法/函数。
策略模式就是将一系列算法封装起来,并使它们相互之间可以替换。被封装起来的算法具有独立性,外部不可改变其特性。
接下来我们用对象配置的方法实现一下上述的例子
1 let type = "A";2 let tactics = {3 A: 1,4 B: 1,5 C: 2,6 D: 3,7 default: 0,8 };9 console.log(tactics[type]); // 1
接下来用几个例子让大家更加熟悉一点。
案例 1 商场促销价
案例 2 年终奖
查看案例:减少 if-else 技巧案例
提升代码可读性,减少if-else的几个小技巧
天天快看:携程梁建章建议:取消中考 缩短中小学学制 提前2年上班
时代变了!日系豪华败走中国:停产停售、官网504、全面退场
焦点速看:DOS初识
【天天播资讯】《春晚》收视率史低 2023年很多节目真实生活取材 这次必看
全球报道:干掉致命疾病!全球首款蜜蜂疫苗获批
转子发动机回归!马自达官宣:增程式版MX-30本月发布
环球速读:解决安卓四大不可能 李杰:一加11 16GB流畅用四年
环球快资讯:再也不怕侧方停车!现代展示e-Corner系统:还能“坦克掉头”
ElasticSearch必知必会-基础篇
环球快报:火山引擎 DataLeap 通过中国信通院测评,数据管理能力获官方认可!
全球速递!开源动物行为分析实验箱(斯金纳箱)需求调研分析
世界看点:低代码开发:释放数字化生产力
文件IO操作开发笔记(二):使用Cpp的ofstream对磁盘文件存储进行性能测试以及测试工具
百事通!成了!微信:视频号用户总使用时长接近朋友圈80%
天天要闻:开袋即食 一口弹牙 大牌优形肉肠0.99元/根(商超2.5元)
快资讯:期待!《生化危机4:重制版》威斯克或将登场
特斯拉门店:降价维权后销量翻倍!全国一天提车量超1万台
2023支付宝集五福最全攻略 神秘玩法千万别错过
琥珀银杏果是什么东西?琥珀银杏果是什么地方的菜?
兵长一米六是什么意思?兵长一米六顺口溜
美髯公指的是谁?美髯公是什么意思?
金坷垃是什么意思?金坷垃是什么时候的梗?
肥皂水是碱性还是酸性?肥皂水的主要化学成分是什么?
主角叫萧破天的小说有哪些?主角叫萧破天的全部小说
转世仁波切是什么意思?转世仁波切怎么认证?
电信拨打长途前面加什么?电信拨打长途要钱吗?
今日最新!金子塔图,自定义图表,伪漏斗图
环球今日报丨Codeforces 1704 F Colouring Game 题解 (结论,SG函数)
dnf武极觉醒技能怎么点?DNF武极觉醒技能介绍
倒角外倒角内倒角怎么区分?倒角外倒角内倒角的区别有哪些?
申怡走进云南白沙湾小学开讲公益语文课 用语文点亮希望的灯火
【新视野】专心打造小米汽车!雷军已卸任多家小米旗下公司职务
天天新资讯:《中国奇谭》爆火出圈!淘宝周边已卖断货 网友建议快出小野猪毛刷
世界速看:特斯拉二把手上位之路:朱晓彤如何打动马斯克?
环球资讯:比特斯拉多卖40万辆 比亚迪提前锁定2022年全球新能源销冠
【环球热闻】日志瘦身骚操作:从 5G 优化到 1G。
重磅发布丨从云原生到 Serverless,先行一步看见更大的技术想象力
世界简讯:rsync使用技巧
最新快讯!美国要给飞机安装5G信号屏蔽仪:避免影响航空安全
足坛再无“大圣” 33岁老将贝尔宣布退役
世界报道:2023年世界航天首次失利!英国维珍轨道火箭异常:9颗卫星没了
极狐考拉发布首款智能亲子车:有侧滑门、自带电子安全座椅
你集齐五福了吗?扫这张图能拿额外福卡 每天都有
【全球新要闻】劳斯莱斯2022年销量刷百年纪录!土豪都喜欢定制车
【天天聚看点】1.47英寸大屏、14天续航!Redmi手环2年货节优惠:仅159元
当前热门:腾讯股价翻倍 港股又香了 2023年首只爆款基金20亿一天卖完
全球观热点:联合国:地球臭氧层有望在40年内恢复 已步入正轨
环球即时看!国外小伙买世界最亮手电筒 网友:天已亮 该去上班了
天天微动态丨清华教授:互联网公司很难形成垄断了
支付宝“集五福”正式开启:已有2.7万人火速集齐 分5亿红包
天天微速讯:最新安卓手机用户偏好榜:12G内存、512G存储逐渐成主流
每日热文:洛谷P3956. [NOIP2017. PJ]棋盘
Spring IOC官方文档学习笔记(八)之容器扩展点
HTML超文本标记语言4
【环球快播报】茅台董事长丁雄军:买不到茅台还吃不起冰激凌吗?
小米12S Ultra官网缺货!卢伟冰推荐小米13 Pro:影像也非常强
环球快讯:过去10年 全国130多个县第一次通上铁路
环球热门:2.5亿年前 96%的物种突然消失!中国学者有了重大发现
精彩看点:还在用20世纪90年代的破系统!美国航空巨头8天赔掉50个亿
ThreadLocal底层原理
焦点热文:小米13 Pro把单反相机技术塞入手机里!雷军:效果惊艳
AMD三颗新U齐发!锐龙9 7900、锐龙7 7700、锐龙5 7600图赏
暴雪国服代理谈判被曝进入"二选一"阶段:手游版权开发分成是核心
报道:SpaceX猎鹰重型火箭再次发射美军卫星:能抗核打击
环球今热点:在QEMU-KVM环境下部署Oracle 19.16 RAC
全球要闻:HTML超文本标记语言3
苹果中国官网上线智能家居板块:一个LED灯泡卖168元 贵吗?
世界实时:《三体》电视剧过审上微博热搜 网友:只求别魔改!
环球今日报丨去意已决?巴菲特再度减持比亚迪
全球快消息!真爱粉!苏州加油为抢一加11首发跑到上海:对新品非常期待
世界观速讯丨C++引用【cherno课程学习】
【天天报资讯】「年终总结」写了 3 年文章的我,昨天第一次露脸直播。
环球今日报丨【前端调试】- 利用 Performance 和 Memory 分析内存
热点!操作系统 — 精髓与设计原理(第一章 计算机系统概述)
世界播报:学习笔记——Mybatis映射文件根标签与子标签
全球即时看!又一豪华巨头败走中国 官网关停!长安终于可以独享车标了
环球新消息丨广告又来?Win11将在文件管理器显示“推荐内容”
AMD锐龙7000新U不讲武德:编号更高 频率反而更低
车企"英文+数字"的新车命名规则被吐槽无趣 不如中文
外星人M18首发!京东方推出18英寸480Hz笔记本屏
全球热议:java不同版本jdk切换
每日焦点!读博初始心境-求讨论
前沿热点:抖音2023年春节红包来了:分4亿 最高可得万元奖金
环球快看点丨彻底终结充电焦虑?韩国SK On新技术:汽车电池18分钟充满
世界微资讯!电竞手机要消亡!卢伟冰:有了Redmi K60就不需要电竞手机
国内演员指责电视收费乱象:大几千买的电视看不了 打开全要收费
NAT类型检测方案
世界热议:学习笔记——Mybatis核心配置文件概述及根标签
VisualStudio 使用 FastTunnel 辅助搭建远程调试环境
世界观焦点:“外星科技”加持!Redmi 12C支持双SIM卡+TF卡拓展:699元起
搜狐张朝阳谈工作意义:年轻人赚钱享乐的想法不对
同步小米13 Ultra!小米平板6/6 Pro来了:处理器、屏幕大升级
今晚20点整:京东年货红包重磅加码 最高9999元
360Hz超高刷也白菜价了 泰坦军团1ms电竞显示器到手1629元
火山引擎 DataTester:5 个优化思路,构建高性能 A/B 实验平台
环球新资讯:对话阿里云叔同:如何看待 2022 年云原生的发展,2023 年有哪些值得关注的技术?
全球新动态:字符串匹配算法综述
新资讯:网易云音乐用户画像资产治理及业务赋能
每日热议![概率论与数理统计]笔记:3.1 随机向量的分布