1)利用逻辑判断的短路运算来实现 && 和 ||(&& 中第一个表达式为假就不会去处理第二个表达式,|| 则相反)

// if为真
if (bool) {
value = getYes();
}
// &&改版
bool && (value = getYes()); // if为假
if (!bool) {
value = getNo();
}
bool || (value = getNo());

2)三元运算符改写if else

// if 版本
if (bool) {
value = 1;
} else {
value = 2;
} // 三元运算符 版本
value = bool ? 1 : 2;

3)数据驱动法

function formatData(a) {
let c = "";
if (a === 1) {
c = "汉族";
} else if (a === 2) {
c = "苗族";
} else if (a === 3) {
c = "维吾尔族";
} else if (a === 4) {
c = "回族";
} else if (a === 5) {
c = "藏族";
}
// ... 等等等等 return c;
}
var result = formatData(2) // 对应的苗族 数据驱动版本
const obj = {
1: "汉族",
2: "苗族",
3: "维吾尔族",
4: "回族",
5: "藏族",
// ...等等等等
};
function formatData(a) {
return obj[a]
}
var result = formatData(2); // 苗族

4)ES6 的 map 数据结构

function del(){}; // 删除操作
function add(){}; // 新增
function update(){}; // 更新
function process(operateType) {
if (operateType === 'del') {
del()
} else if (operateType === 'add') {
add()
} else if (operateType === 'update') {
update()
};
};
process('del');// 删除 es6的map数据结构
let typeFn = new Map([
['del', function () {/*do something*/ }],
['add', function () {/*do something*/ }],
['update', function () {/*do something*/ }],
]); function process(operateType) {
typeFn.get(`${operateType}`)();
};
process('del'); // 删除

5)数组

function youAreMyHero(experience) {
if (experience < 100) {
return '萌新';
} else if (experience < 200 && experience >= 100) {
return '骑士';
} else if (experience < 300 && experience >= 200) {
return '英雄';
} else if (experience >= 300) {
return '传说';
};
};
let level = youAreMyHero(351); //传说 数组替代
function youAreMyHero(param) {
let experience = [300, 200, 100];
let level = ['传说', '英雄', '骑士', '萌新']; for (let i = 0; i < experience.length; i++) {
if (param >= experience[i]) {
return level[i];
};
};
return level[level.length - 1];
}; let level = youAreMyHero(250); //英雄

  

if else的多种替换方式的更多相关文章

  1. C#高性能TCP服务的多种实现方式

    哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C#编写TCP服务的花样姿势!>. 本篇文章的主 ...

  2. C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍

    在前面一系列文章中,我们可以看到微信自定义菜单的重要性,可以说微信公众号账号中,菜单是用户的第一印象,我们要规划好这些菜单的内容,布局等信息.根据微信菜单的定义,我们可以看到,一般菜单主要分为两种,一 ...

  3. 顺序表及其多种实现方式 --- C/C++

    所谓顺序表,即线性表的顺序存储结构.下面给出的是数据结构---线性表的定义. ADT List{ 数据对象: 线性表的数据对象的集合为{a1,a2,a3,...,an},每个元素的类型为ElemTyp ...

  4. css考核点整理(九)-有几种文字替换方式,之间的优缺点

    有几种文字替换方式,之间的优缺点

  5. Android开发中怎样调用系统Email发送邮件(多种调用方式)

    在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...

  6. hql语句拼接的替换方式

    hql语句拼接的替换方式 hql语句拼接 String hql = "FROM Topic t WHERE t.forum=? "; List<Object> para ...

  7. Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护

    Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护 数据加密又称password学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文.而解密则是通过解密 ...

  8. spring 文件模板下载多种实现方式

    针对于文件的下载,我们有很多种实现方式.业务场景是这样子的,要实现Excel文件的导入和导出功能,问题对于java的POI操作没有问题,所以实现文件的下载就相对简单,只需要从数据库取出相关的数据,针对 ...

  9. C# 高性能 TCP 服务的多种实现方式

    哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣,为了吸引眼球所以标题中一定要突出,其实我更喜欢的标题是<猴赛雷,C# 编写 TCP 服务的花样姿势!>. 本篇文 ...

  10. SVN服务的模式和多种访问方式 多种访问原理图解与优缺点

    SVN企业应用场景 SVN任是当前企业的主流.git正在发展,未来会成为主流.如果大家精力足够,建议同时掌握. 1.4运维人员掌握版本管理 对于版本管理系统,运维人员需要掌握的技术点: 1.安装.部署 ...

随机推荐

  1. 这款PDF解析工具,精准触达大模型问答应用的需要

    过去的一年,是大语言模型快速发展的一年.大模型强大的语言理解能力,逐渐让用户习惯了将各类文章丢给大模型,让它来帮忙总结提炼.从产品角度看,这是一次10倍体验的飞跃,意味着巨大的市场机会.也因此,市面上 ...

  2. CSS – Icon

    前言 Icon 并不容易搞. 市场有许多平台支持 Icon, 有些收费有些免费. 有些 icon 很丰富, 有些很缺失. 尤其是在做网站的时候寻找 icon 是一个挺累的事情. 这篇就来聊聊 icon ...

  3. ASP.NET Core – 读写 Request / Response

    需求 常见的需求就是从 request 里面读取一些 information. 比如 request URL, header, cookie, 写入 response header, cookie 实 ...

  4. 开源项目dotnet/eshop 和 dotnet/eshopsupport

    dotnet/eshop[1] 和 dotnet/eshopsupport[2] 是两个与 .NET 相关的开源项目,分别用于展示电子商务应用的不同方面. dotnet/eshop: 功能与架构:do ...

  5. MybatisPlus——入门案例

    MyBatisPlus MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发.提高效率 开发方式 基于MyBatis使用MyBatisPlus 基于Sprin ...

  6. [Tkey] 与非

    解法原理1 首先我们需要明白 \(\operatorname{nand}\) 的运算: \[\operatorname{not}(a\operatorname{nand}b)=a\operatorna ...

  7. 【赵渝强老师】MongoDB管理用户的认证机制

    一.MongoDB用户认证机制简介 为了认证客户端,你必须要添加一个对应的用户到MongoDB.基本的步骤分为以下几步: 用户管理接口:db.createUser()方法可以创建一个用户,添加完成后可 ...

  8. CMake 属性之目标属性

    [写在前面] CMake 可以通过属性来存储信息.它就像是一个变量,但它被附加到一些其他的实体上,像是一个目录或者是一个目标.例如一个全局的属性可以是一个有用的非缓存的全局变量. 在 CMake 的众 ...

  9. Linux如何使用trim命令保持SSD的读写速度

    随着硬盘技术的不断发展何固态硬盘的大量使用,你肯定听说过或者使用过固态硬盘,固态硬盘(或固态硬盘)能够达到比传统硬盘更快的读取和写入数据的速度,您可能不知道的是,随着时间的推移,当磁盘写满时,SSD硬 ...

  10. CE-植物大战僵尸杂交版

    植物大战僵尸杂交版 偏移:208+82c