js 条件判断,js的多条件判断
本文为您带来了一些关于javascript的知识,包括JavaScript条件判断技巧的详细解释。有需要的朋友可以借鉴一下。下面就来看看吧,希望对你有帮助。
【相关推荐:javascript视频教程,web前端】
本文用很短的时间介绍如何用JavaScript编写更简单的条件判断,帮助你写出更简洁的代码,更可读的代码。
假设我们有一个将颜色值转换成十六进制代码的函数。
函数convertToHex(color) {
if (typeof color===string) {
if (color===slate) {
返回 #64748b
} else if (color===gray) {
返回 #6b7280
} else if (color===red) {
返回 #ef4444
} else if (color===orange) {
返回 #f97316
} else if (color===yellow) {
返回 #eab308
} else if (color===green) {
return #22c55e
}否则{
返回 #ffffff
}
}否则{
返回 #ffffff
}
}函数很简单,就是传入一个颜色字符串,然后返回对应的十六进制。如果传入的不是字符串,或者没有传递任何内容,则返回白色十六进制。
接下来,我们将开始优化这段代码。
避免直接使用字符串作为条件
直接用字符串做条件有个问题,就是当我们拼错的时候会很尴尬。
ConvertToHex(salte )为了避免这种错误,我们可以使用常量。
常量颜色={
石板:“石板”,
灰色:“灰色”,
//.
}
函数convertToHex(color) {
if (typeof color===string) {
if (color===Colors。石板){
返回 #64748b
} else if (color===Color。灰色){
返回 #6b7280
}
//.
}否则{
返回 #ffffff
}
}
ConvertToHex(颜色。SLATE)如果使用的是typescript,可以直接使用枚举。
使用 Object
其实从上面的代码中不难发现,我们可以直接将十六进制值存储到对象的值中。
常量颜色={
候选人名单:“#64748b”,
格雷: #6b7280 ,
//.
}
函数convertToHex(color) {
如果(彩色中的彩色){
返回颜色[颜色]
}否则{
返回 #ffffff
}
}
ConvertToHex(颜色。SLATE)会让代码更加简洁易读。
不符合预期,提前 return
另一个最佳做法是,我们可以把意外情况写到函数前面,提前返回,避免忘记返回。
常量颜色={
候选人名单:“#64748b”,
格雷: #6b7280 ,
//.
}
函数convertToHex(color) {
如果(!彩色中的彩色){
返回 #ffffff
}
返回颜色[颜色]
}
ConvertToHex(颜色。石板)以便甚至不需要其他东西。有了这项技能,我们可以消除代码中的许多其他内容。
使用 Map 配合 Object
使用map更专业,因为map可以存储任何类型的键,而且继承自Map.prototype,有更方便的方法和属性。
对象更方便访问属性,可以继续用对象实现枚举。
const ColorsEnum={
石板:“石板”,
灰色:“灰色”,
//.
}
const Colors=新地图()
Colors.set(ColorsEnum。石板, #64748b )
Colors.set(ColorsEnum。灰色,“6b7280”)
//.
Colors.set(DEFAULT , #ffffff )
函数convertToHex(color) {
如果(!Colors.has(color)) {
return Colors.get(DEFAULT )
}
返回Colors.get(color)
}
ConvertHex(colors . slate)
Map 也可以存储函数
假设我们存储了很多颜色,多达上千种,还支持后端配置,这样就可以通过某种运算过程得到结果。
然后我们可以用Map来存储函数。
return colors . get(color)()
尽量避免三目表达式和 switch
三联表达式虽然简洁,但可读性却大打折扣。如果是多级条件,阅读起来会很困难。
与switch if相比,没有明显优势,但有时容易返回,导致代码无法按预期执行。
【相关推荐:javascript视频教程,web前端】以上是总结使用JavaScript条件判断技巧的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。