iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript条件判断使用技巧详解
  • 223
分享到

JavaScript条件判断使用技巧详解

2024-04-02 19:04:59 223人浏览 独家记忆
摘要

目录引言避免直接使用字符串作为条件使用 Object不符合预期,提前 return使用 Map 配合 ObjectMap 也可以存储函数尽量避免三目表达式和 switch引言 本文花

引言

本文花费很短的时间来介绍一下在 javascript 中如何编写更简单的条件判断,帮助你编写更简洁的代码和可读性更高的代码。

假如我们有一个颜色值转换十六进制编码的函数。

function convertToHex(color) {
  if (typeof color === 'string') {
    if (color === 'slate') {
      return '#64748b'
    } else if (color === 'gray') {
      return '#6b7280'
    } else if (color === 'red') {
      return '#ef4444'
    } else if (color === 'orange') {
      return '#f97316'
    } else if (color === 'yellow') {
      return '#eab308'
    } else if (color === 'green') {
      return '#22c55e'
    } else {
      return '#ffffff'
    }
  } else {
    return '#ffffff'
  }
}

这个函数的作用很简单,就是传入颜色字符串,然后返回对应的十六进制,如果传入的不是一个字符串,或者什么都没传递,那么返回白色的十六进制。

接下来我们就开始对这段代码进行优化

避免直接使用字符串作为条件

直接使用字符串作为条件有个问题,就是当我们拼写错误时,就会很尴尬。

convertToHex("salte")

为了避免这种错误,我们可以使用常量。

const Colors = {
	SLATE: 'slate',
  GRAY: 'gray',
  // ...
}
function convertToHex(color) {
  if (typeof color === 'string') {
    if (color === Colors.SLATE) {
      return '#64748b'
    } else if (color === Color.GRAY) {
      return '#6b7280'
    }
    // ...
  } else {
    return '#ffffff'
  }
}
convertToHex(Colors.SLATE)

如果你是用 typescript 的话,那么可以直接使用枚举。

使用 Object

其实从上面的代码中不难发现,我们可以直接把十六进制的值存储到对象的 value 中。

const Colors = {
	SLATE: '#64748b',
  GRAY: '#6b7280',
  // ...
}
function convertToHex(color) {
  if (color in Colors) {
    return Colors[color]
  } else {
    return '#ffffff'
  }
}
convertToHex(Colors.SLATE)

这样代码将会更加简洁易读。

不符合预期,提前 return

还有一个最佳实践是,我们可以把不符合预期的情况写到函数的最前面提前 return,避免忘记 return。

const Colors = {
	SLATE: '#64748b',
  GRAY: '#6b7280',
  // ...
}
function convertToHex(color) {
  if (!color in Colors) {
    return '#ffffff'
  }
  return Colors[color]
}
convertToHex(Colors.SLATE)

这样连 else 都不需要了。巧用这种技巧,我们可以消灭代码中大量的 else。

使用 Map 配合 Object

使用 map 更加专业,因为 map 可以存储任意类型的 key,而且它继承自 Map.prototype,具有更多方便的方法和属性。

而 Object 访问属性更加方便,我们可以继续使用 Object 实现枚举的作用。

const ColorsEnum = {
	SLATE: 'slate',
  GRAY: 'gray',
  // ...
}
const Colors = new Map()
Colors.set(ColorsEnum.SLATE, '#64748b')
Colors.set(ColorsEnum.GRAY, '#6b7280')
// ...
Colors.set('DEFAULT', '#ffffff')
function convertToHex(color) {
  if (!Colors.has(color)) {
    return Colors.get('DEFAULT')
  }
  return Colors.get(color)
}
convertToHex(Colors.SLATE)

Map 也可以存储函数

假设我们存储的颜色非常多,高达上千种,而且还要支持后端配置,通过某种运算过程才可以得到结果。

那么我们可以使用 Map 来存储函数。

return Colors.get(color)()

尽量避免三目表达式和 switch

三目表达式虽然简介,但是可读性大大降低,如果是多级条件的话,会非常难以阅读。

switch 和 if 相比没有明显优势,反而有时容易 return 导致代码不按预期执行。

以上就是JavaScript 条件判断使用技巧详解的详细内容,更多关于JavaScript 条件判断的资料请关注编程网其它相关文章!

--结束END--

本文标题: JavaScript条件判断使用技巧详解

本文链接: https://www.lsjlt.com/news/166749.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript条件判断使用技巧详解
    目录引言避免直接使用字符串作为条件使用 Object不符合预期,提前 return使用 Map 配合 ObjectMap 也可以存储函数尽量避免三目表达式和 switch引言 本文花...
    99+
    2022-11-13
  • 聊聊JavaScript条件判断的使用技巧
    本篇文章给大家带来了关于JavaScript的相关知识,其中主要跟大家聊一聊有关JavaScript条件判断的使用技巧,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。本文来介绍一下在 JavaScript 中如何编写更简单的条件判断,助...
    99+
    2023-05-14
    JavaScript
  • JavaScript条件判断的使用技巧有哪些
    本文小编为大家详细介绍“JavaScript条件判断的使用技巧有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript条件判断的使用技巧有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。假如我...
    99+
    2023-07-05
  • JavaScript条件判断语句如何使用
    本篇内容介绍了“JavaScript条件判断语句如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!假如...
    99+
    2022-10-19
  • Shell脚本中怎么使用IF条件判断和判断条件
    Shell脚本中怎么使用IF条件判断和判断条件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言:      无论什么编程语言...
    99+
    2023-06-09
  • bashif条件判断的使用
    目录if格式条件测试整数测试字符测试文件测试组合条件测试在bash中,if是可以对语句做选择执行,做if条件测试有整数测试,字符测试,文件测试三种形式。 if格式 单分支语法 if ...
    99+
    2023-02-16
    bash if条件判断 bash if判断
  • bash if条件判断的使用
    目录if格式条件测试整数测试字符测试文件测试组合条件测试在bash中,if是可以对语句做选择执行,做if条件测试有整数测试,字符测试,文件测试三种形式。 if格式 单分支语法 if 条件; then 语句1 ...
    99+
    2023-02-16
    bashif条件判断 bashif判断
  • JavaScript如何使用逻辑AND/OR做条件判断
    小编给大家分享一下JavaScript如何使用逻辑AND/OR做条件判断,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!使用逻辑 AND/OR 做条件判断if变形语句!var fo...
    99+
    2022-10-19
  • JS if else语句(条件判断语句)的详细使用
    目录前言if语句if else 语句if else if else 语句总结前言 条件判断语句是程序开发过程中一种经常使用的语句形式,和大部分编程语言相同,JavaScript&nb...
    99+
    2022-11-13
  • JS判断元素是否在可视区域技巧详解
    目录前言实现方式offsetTop、scrollTop注意getBoundingClientRect前言 在日常开发中,我们经常需要判断目标元素是否在视窗之内或者和视窗的距离小于一...
    99+
    2022-12-20
    JS判断元素可视区域 JS 元素可视区域
  • mysql条件判断函数的具体使用
    目录IF(expr,v1,v2)函数IFNULL(v1,v2)函数CASE函数条件判断函数也被称为控制流程函数,根据满足的不同条件,执行响应的流程。mysql中进行条件判断的函数有if、ifunll和case等。 IF(...
    99+
    2023-01-09
    mysql条件判断 mysql判断条件函数
  • Pytorch 使用tensor特定条件判断索引
    torch.where() 用于将两个broadcastable的tensor组合成新的tensor,类似于c++中的三元操作符“?:” 区别于python num...
    99+
    2022-11-12
  • shell脚本语言之if条件判断语句实例详解
    目录1.单分支if条件语句1.1举例:判断目录是否存在,不存在则创建2.双分支if条件语句2.1举例:监听并自动重启apache服务脚本3.多分支if条件语句3.1举例:判断用户输入的是文件还是目录4.case条件语句4...
    99+
    2022-06-05
    shell if条件判断 shell脚本else if判断 shell的if判断
  • linux中如何使用shell 条件判断语句
    linux中如何使用shell 条件判断语句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。常用系统变量 $0 当前程式的名称 $n 当前程式的第n个参数,n=1,2,&am...
    99+
    2023-06-13
  • MySQL如何使用时间作为判断条件
    背景:在开发过程中,我们经常需要根据时间作为判断条件来查询数据,例如:当月,当日,当前小时,几天内...... 1. 当月 我们只需要使用一个mysql的MONTH(date)函数即可实现。(注意判断年份) MO...
    99+
    2022-05-10
    mysql 时间 判断条件
  • 如何实现导入css文件使用判断条件
    这篇文章主要为大家展示了“如何实现导入css文件使用判断条件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现导入css文件使用判断条件”这篇文章吧。方案一: 在HTML文档中使用条件导入,...
    99+
    2023-06-08
  • python中的条件判断语句的使用介绍
    目录1. 避免多层分支嵌套2. 封装过于复杂的逻辑判断3. 不同分支下的重复代码4. 合理使用三元表达式5. 常见技巧5.1德摩根定律5.2自定义类的魔法方法5.3在条件判断中使用 ...
    99+
    2022-11-13
  • Shell如何使用条件判断语句与循环
    本篇内容主要讲解“Shell如何使用条件判断语句与循环”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell如何使用条件判断语句与循环”吧!1.条件判断1.1基本语法[condition]注意...
    99+
    2023-06-09
  • C语言中条件判断的正确使用姿势
    目录前言一、if语句二、if-else语句if语句嵌套使用if else语句的链式使用三、switch语句switch基础用法switch高级用法前言 在C语言中,有三种条件判断结构...
    99+
    2023-05-19
    C语言条件判断正确使用 C语言条件判断使用 C语言条件判断
  • Pytorch使用tensor特定条件判断索引的方法
    本篇内容介绍了“Pytorch使用tensor特定条件判断索引的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!torch.wher...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作