第一句子大全,网罗天下好句子,好文章尽在本站!

用Object键值替换switch语句

时间:2023-05-22

对象非常灵活,它们是JavaScript中几乎所有内容的核心,使用它们代替switch语句是我最近一直在做的事情

友情提示:本文共有 2046 个字,阅读大概需要 5 分钟。

在许多编程语言中,switch语句存在 - 但是它应该更长吗?如果你是一个JavaScript程序员,你经常跳进和跳出对象,创建,实例化和操作它们。对象非常灵活,它们是JavaScript中几乎所有内容的核心,使用它们代替switch语句是我最近一直在做的事情。

# 什么是switch语句?

如果您以前没有使用switch过或者有点不确定它是做什么的,那么让我们来看看吧。什么switch是输入并提供输出,例如正在运行的代码。

让我们来看一个通常的switch陈述:

它类似于if和else语句,但它应该评估单个值 - 在switch我们使用a case来评估每个值。

当你开始看到很多else if陈述时,某些东西可能是错误的,通常你会使用类似于switch它更适合目的和意图的东西。这是一些else if滥用:

这个实现太松散了,有错误的余地,加上它是一个非常冗长的语法,可以不断重复自己。还有一个黑客攻击的空间,因为你可以评估每个内部的多个表达式else if,例如else if (type === "coke" && somethingElse !== "apples")。这switch是该工作的最佳工具,尽管您需要不断添加break;语句以防止案件失败,这是其众多问题之一。

# 开关问题

switch从程序控制流程到其处理代码块的非标准方式存在多个问题,其余的JavaScript使用花括号而交换机则不然。从语法上讲,它不是JavaScript的最佳选择,也不是它的设计。我们被迫break;在每个语句中手动添加语句case,这可能导致难以调试和嵌套错误,如果我们忘记了!道格拉斯·克罗克福德(Douglas Crockford)曾多次撰写和谈论过这个问题,他的建议是谨慎对待。

我们经常在JavaScript中使用Object查找,通常用于我们永远不会考虑使用的东西switch- 那么为什么不使用Object键值替换switch?对象更灵活,具有更好的可读性和可维护性,我们不需要手动break;每个“案例”。他们对新的JavaScript开发人员也很友好,因为他们是标准对象。

随着“案例”数量的增加,对象(哈希表)的性能优于交换机的平均成本(案例的顺序很重要)。对象方法是哈希表查找,并且交换机必须评估每个案例,直到它遇到匹配和中断。

# 对象文本查找

我们一直使用对象,无论是构造函数还是文字。通常,我们将它们用于对象查找目的,以从Object属性中获取值。

让我们设置一个String仅返回值的简单Object键值。

我们从交换机中保存了几行代码,对我而言,数据在演示中更加清晰。我们甚至可以进一步简化它,没有默认情况:

但是,我们可能需要比a更复杂的代码String,这可能会挂在函数内部。为了简洁和易于理解的示例,我将从新创建的函数返回上述字符串:

不同之处在于我们需要调用Object literal的函数:

更易于维护和阅读。我们也不必担心break;语句和案例的落空 - 它只是一个普通的对象。

通常,我们会switch在函数内部放一个return值并获取一个值,所以让我们在这里做同样的事情并将一个Object键值查找转换为一个可用的函数:

很好,很容易,但这不适合“默认” case,所以我们可以轻松创建:

我们可以简化上面的内容if并在表达式中else使用or ||运算符:

这将两个Object查找包装在括号内( ),将它们视为表达式。然后调用表达式的结果。如果drinks[type]在查找中找不到,它将默认为drinks["default"],简单!

我们不会有永远return的函数或者里面,我们可以改变引用任何变量然后返回它:

这些是非常基本的解决方案,并且Object键值包含一个function返回a String,在你只需要一个的情况下String,你可以使用a String作为键的值 - 有些时候函数将包含逻辑,这将从函数返回。如果你正在将函数与字符串混合,那么在任何时候都可以更容易地使用函数来保存查找type和调用它是否是函数 - 我们不想尝试调用a String。

# 对象文本“告吹”

对于switch案例,我们可以让它们落空(这意味着不止一个案例可以应用于特定的代码段):

让我们coke和pepsi“贯穿”以不添加break语句。为Object Literals执行此操作非常简单且更具说明性 - 并且不易出错。我们的代码突然变得更加结构化,可读性和可重用性:

# 总结

Object键值是JavaScript中流动的一种更自然的控制,switch有点陈旧和笨重,并且容易出现调试错误。对象更具可扩展性,可维护性,我们可以更好地测试它们。它们也是设计模式的一部分,在日常的其他编程任务中非常常用。对象键值可以包含函数以及任何其他对象类型,这使它们非常灵活!键值中的每个函数也都有函数作用域,因此我们可以从我们调用的父函数getDrink返回闭包(在这种情况下返回闭包)。

本文如果对你有帮助,请点赞收藏《用Object键值替换switch语句》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
你把雅思阅读文章看穿 为什么还找不到定位?

你把雅思阅读文章看穿 为什么还找不到定位?

...感觉还是定位不到文章。这其实是因为题目中的定位词被替换了,而大家么有能够意识到替换。下面我们来谈谈第二个问题,就是替换词。这里杨老师会给大家讲解三种替换的思路,分别是:同义词的替换、概括和具体的替换以...

2023-07-20 #经典句子

考研英语89分 是因为我掌握了这个技巧

考研英语89分 是因为我掌握了这个技巧

...开范文和模板,优雅地备考考研作文只需要两步:句式和替换。句式解决了我们写作文的时候,没内容写,想不到写什么,不知道怎么写的问题。换言之,句式解决的是从无到有的问题。考研作文一般分为三大段,第一段固定为...

2023-01-27 #经典句子

高中英语:作文总是不会写?掌握这几点帮你得高分!

高中英语:作文总是不会写?掌握这几点帮你得高分!

...下,你的作文成绩自然不会低!举几个简单的例子:severe替换掉serious(严重的)aseverewatershortage严重缺水wealthy替换掉rich(富裕的)beneficial替换掉good(有益的)undesirable替换掉bad(不好的,不受欢迎的)nevertheless替换掉however/but...

2022-12-19 #经典句子

Word如何快速查找和替换文本内容

Word如何快速查找和替换文本内容

Word如何快速查找和替换文本内容使用查找功能,可以在文档中快速定位到指定的内容,使用替换功能可以将文档中的指定内容修改为新内容。结合使用查找和替换功能,可以提高文本的编辑效率。一, 实战:查找公司概况文本...

2023-11-29 #经典句子

梦幻西游:玩家发传音被鸡汤句子替换 申诉被拒 客服避而不谈!

梦幻西游:玩家发传音被鸡汤句子替换 申诉被拒 客服避而不谈!

...容来看,并没有什么敏感的词语,但却被下面的鸡汤句子替换了。之前的传音内容变成了这样的句子“人只要不失去方向,就不会失去自己”,好大一碗心灵鸡汤。然而令人不解的是,自己看自己所发的传音并没有发现内容被替...

2023-02-01 #经典句子

剑桥KET青少版英语在线培训班分享2021年KET口语备考句子复述技巧

剑桥KET青少版英语在线培训班分享2021年KET口语备考句子复述技巧

...述 :复述主要由两个部分组成:一个是背诵,另一个是替换,也就是相同的意思,不同表达。一、背诵背诵的内容不一定要是真题答案,因为这个阶段仍然是一个积累词汇,巩固语法句型,培养语感及英文文法的时期。同学们...

2022-12-10 #经典句子

怎么快速把文本或word的换行替换为逗号?

怎么快速把文本或word的换行替换为逗号?

工作中,会经常遇到需要把竖着排列的词语批量替换成相连的句子.比如,像以下这些词:其实就是把换行符,替换为逗号,怎么快速把文本或word的换行替换为逗号?方法 如下:1:首先把文本的词语全部复制到word上2:接着同时按住...

2023-01-06 #经典句子

27.Python密码学入门六:手把手破解一首简单替换加密后的英文诗

27.Python密码学入门六:手把手破解一首简单替换加密后的英文诗

用一首著名的英文诗,手把手演示如何破解简单替换加密。百家号不支持代码格式,文章里的代码排版都是乱的。如果需要拷贝代码,可以去同名微信公众号。上篇说到,李雷用凯撒加密,仿射加密给Kate写信,都被父母轻松破...

2016-02-04 #经典句子

记住这十个字 文言文翻译题其实很简单

记住这十个字 文言文翻译题其实很简单

...太后)驾崩了,长安君凭什么在赵国立身呢?(九)替即替换,就是用现代的同义或近义的词汇替换文言文中的古代词汇;用现代的词汇或者结构替换文言文中的古代固定结构。例如,“是造物者之无尽藏也,而吾与子之所共适...

2023-05-22 #经典句子