1,前言


今早看了一篇文章《JavaScrip实现:如何写出漂亮的条件表达式》,原创于:华为云开发者社区,作者:查尔斯。抱着随便逛逛的心态看了一下,受益匪浅,于是记录一下,我认为对我有用的几点。

2,多条件if语句优化


在写业务代码的过程中,经常会碰到需要判断多个条件的if语句,如下:

function zoo(animal) {
if (animal === "dog" || animal === "cat" || animal === "tiger") {
console.log('这是一只哺乳动物');
} else {
// ...
}
} let name = 'tiger'; console.log(zoo(name));

这种写法在条件比较少的情况下看起来没有问题,但是如果继续拓展判断的条件,那么代码将会变得难以维护,而且逻辑会不清晰。

解决方法

function zoo(animal) {
const list = ['dog', 'cat', 'tiger']
if (list.includes(animal)) {
console.log('这是一只哺乳动物');
} else {
// ...
}
} let name = 'tiger'; console.log(zoo(name));

这里创建了一个数组,以便将条件与逻辑语句分开,并使用了includes方法,现在,如果我们想要检查任何其他动物,我们需要做的就是添加一个新的数组项

3,参数默认值


function log(type, obj = {}){
console.log(type)
console.log(obj.name)
}
log(0)

以上,会打印出 0undefined, 如果没有设置obj = {},就会报错。

4,Switch语句优化


如下,这是一个设置title的函数,看上去很丑陋

// 设置标题
setTitle(type) {
let flow = type || 0;
let title = '筹开项目';
switch (flow) {
case 1:
title = '房源立项'
break
case 2:
title = '发起支出'
break
case 3:
title = '开放预定'
break
case 4:
title = '开放签约'
break
}
return title;
}

经过改造,可以变成如下

setTitle(type) {
let flow = type || 0;
let list = ['筹开项目', '房源立项', '发起支出', '开放预定', '开放签约']
return list[flow];
}

如果看了觉得有帮助的,我是@鹏多多,欢迎 点赞 关注 评论;

END

往期文章

个人主页

JavaScrip条件表达式优化的更多相关文章

  1. [Inside HotSpot] C1编译器优化:条件表达式消除

    1. 条件传送指令 日常编程中有很多根据某个条件对变量赋不同值这样的模式,比如: int cmov(int num) { int result = 10; if(num<10){ result ...

  2. [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数

    前言:本文以学习记录的形式发表出来,前段时间苦于照模型聚合中group by 找了很久,官方文章中没有很明确的说出group by,但在文档中有提到!!! 正文(最后编辑于2016-11-12): 聚 ...

  3. Scala:条件表达式的好处

    条件表达式的好处之一是:让代码更简洁,例如在一个需要根据不同条件收集不同值的场景中,多数语言提供的代码如下: ; ) { tmp = xxx; } ) { tmp = yyy; } else { tm ...

  4. Shell 条件表达式汇总

    条件表达式 文件表达式 if [ -f  file ]    如果文件存在if [ -d ...   ]    如果目录存在if [ -s file  ]    如果文件存在且非空 if [ -r f ...

  5. shell之条件表达式

    conditional expressions are used by the [[ compound command and the test and [ builtin commands. ari ...

  6. Python学习教程(learning Python)--3.3 分支语句的条件表达式详解

    本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...

  7. golang没有条件表达式?:

    详见The Go Programming Language Specification中Expressions一章中未提及此表达式, 故其不支持. 再强调一次, GO不支持条件表达式 conditio ...

  8. MySQL--索引条件下推优化

    http://blog.163.com/li_hx/blog/static/1839914132015782821512/ 一 什么是“索引条件下推” “索引条件下推”,称为 Index Condit ...

  9. thymeleaf条件表达式

    条件表达式形式:condition, then and else <tr th:class="${row.even}? 'even' : 'odd'"> ... < ...

随机推荐

  1. Spring(一):Spring概述及相关概念

    Spring简介 Spring主要作用是用来解耦,降低代码之间的耦合度.根据功能的不同,可以将系统的代码分为主业务逻辑与系统服务逻辑. 主业务逻辑之间代码联系紧密,相互调用较多,复用性相对较低: 系统 ...

  2. reverseLinkedList(翻转链表)

    ReverseLinkedList(翻转链表) 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.非连续.非顺序指的是,通过指针把一组零散的内存块串 ...

  3. Hi3559AV100 NNIE开发(6)RFCN中NNIE实现关键线程函数->SAMPLE_SVP_NNIE_Rfcn_ViToVo()进行数据流分析

    前面随笔给出了NNIE开发的基本知识,下面几篇随笔将着重于Mobilefacenet NNIE开发,实现mobilefacenet.wk的chip版本,并在Hi3559AV100上实现mobilefa ...

  4. 【Django学习笔记】-环境搭建

    对于初学django新手,根据以下步骤可以快速进行Django环境搭建 虚拟环境创建 使用virtualenv创建并启用虚拟机环境 ,关于virtualenv可参考https://www.yuque. ...

  5. kubernetes 降本增效标准指南| 资源利用率提升工具大全

    背景 公有云的发展为业务的稳定性.可拓展性.便利性带来了极大帮助.这种用租代替买.并且提供完善的技术支持和保障的服务,理应为业务带来降本增效的效果.但实际上业务上云并不意味着成本一定较少,还需适配云上 ...

  6. python3使用tracemalloc追踪mmap内存变化

    技术背景 在前面一篇博客中我们介绍了一些用python3处理表格数据的方法,其中重点包含了vaex这样一个大规模数据处理的方案.这个数据处理的方案是基于内存映射(memory map)的技术,通过创建 ...

  7. python基础(补充):列表生成器

    列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表. 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list ...

  8. 「Spring Boot 2.4 新特性」启动耗时详细监控

    背景 Spring Boot 项目随着项目开发过程中引入中间件数量的增加,启动耗时 逐渐增加. 笔者在 <Spring Boot 2.4.0 正式 GA,全面拥抱云原生>文章评论下发现了 ...

  9. shell脚本 4 函数与正则

    shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式 func() {   #指定函数名 ...

  10. (一)Docker-in-Docker on Kubernetes

    1. 场景 请参考docker in docker 文章 2. DinD 我们将采用主机Docker守护程序作为外部守护程序,Docker守护程序作为内部守护程序在容器内运行.运行DinD的一个重要方 ...