您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

让你写出更好的JavaScript条件语句的5个技巧 《源码交易平台》

  • 时间:2022-08-20 00:52 编辑: 来源: 阅读:295
  • 扫一扫,手机访问
摘要:让你写出更好的JavaScript条件语句的5个技巧 《源码交易平台》
使用JavaScript时,我们经常要写很多条件语句。 这里有五个技巧可以帮助你写出更干净漂亮的条件语句。 1.使用Array.includes解决多个条件。举个栗子:乍一看,好像问题不大。 然而,如果我们想搭配更多的红色水果,比如“樱桃”和“蔓越莓”呢?我们必须用更多的||,来扩展这个声明吗?我们可以用Array.includes重写上面的条件句 我们将所有的红色果实(条件)提取到一个数组中,这使得我们的代码看起来更干净。 2.少写嵌套,尽早返回。让我们给前面的例子增加两个条件:如果没有提供水果,抛出一个错误。 如果水果的数量大于10,则将其打印出来。 让我们仔细看看上面的代码。我们有:1 if/else语句挑出无效的条件3层if语句嵌套(条件1,2 & 3)个人来说,我遵循的一个通用规则是,当我发现无效条件时,尽快返回。 这样,我们就少写了一层嵌套。 这是一种很好的代码风格,尤其是当if语句很长时(想象一下,你必须滚动到底部才能知道那里还有另一个else语句,是不是有点不舒服) 如果我们颠倒条件,我们可以进一步减少嵌套层次。 看看下面的条件2语句,看看是怎么做到的:通过颠倒条件2的条件,我们的代码不再嵌套。 当我们的代码的逻辑链很长的时候,这个技术会很有用,我们希望在不满足某个条件的情况下,不执行后处理。 然而,没有硬性规定要求你这样做。 这取决于你自己。对你来说,这个版本的代码(没有嵌套)能比之前的版本(在条件2中有嵌套)更好更易读吗?如果我是你,我会选择之前的版本(条件2有嵌套) 原因是这样的代码简短明了,一个嵌套的if让结构更清晰。 条件逆转会导致更多的思考过程(增加认知负担) 所以,永远追求少筑巢早归,但不要过度。 如果你有兴趣,这里有一篇关于这个问题的文章和关于StackOverflow的讨论:避免Else,提早返回作者Tim Oxley stack overflow关于if/else编码风格3,使用函数默认参数和解构的讨论我猜你可能对下面的代码比较熟悉。在JavaScript中,我们经常需要检查null/undefined,并给它一个默认值:其实我们可以通过函数的默认参数去掉变量Q。 是不是更简单直接?请注意,所有函数参数都可以有默认值。 例如,我们也可以给fruit: function test一个默认值(fruit =' unknown ',quantity = 1) 如果水果是一个物体呢?我们还能使用默认参数吗?观察上面的例子。当水果名称属性存在时,我们希望打印它,否则,我们将打印“『unknown』” 我们可以避免写水果& amp;水果的状况 由于我们只想要水果的name属性,所以可以用{name}来解构它,然后在代码中用name变量代替fruit.name。 我们还使用{}作为它的默认值。 如果我们不这样做,当执行test(undefined)时,你会得到一个错误不能de结构属性名为' undefined '或' null '。因为undefined上没有name属性。 (译者注:这里不准确。其实解构只适用于对象,并不是因为undefined上没有name属性(空对象上也没有) 参考解构作业-MDN)如果你不介意使用第三方库,有几种方法可以帮助减少空值检查:使用Lodash get函数使用脸书的开源idx库(带Babeljs)。这里有一个使用Lodash的例子:您可以在这里运行演示代码。 另外,如果你更喜欢函数式编程(FP),可以选择使用Lodash FP——Lodash的函数版本(方法名改为get或get or) 4.与switch相比,Map/Object可能是更好的选择。让我们看看下面的例子。我们要把各种水果按照颜色打印出来:上面的代码看起来没有错,但是个人觉得看起来很冗长。 同样的结果可以通过对象的文字量来实现,语法更简洁:或者,你也可以使用Map来实现同样的效果:Map是ES2015中引入的新对象类型,它允许你存储键值对。 这是否意味着我们应该禁止使用switch语句?不要限制自己。 我将尽可能使用对象文字,但这并不意味着我不使用开关,这取决于场景。 Todd Motto有一篇文章深入研究了switch语句和对象文字。你可能想看看。 懒惰版本:重构语法。有了上面的例子,其实我们可以重构我们的代码,使用Array.filter达到同样的效果。 处理问题的方法从来都不止一种。 对于这个例子,我们展示了四种实现方法。 编码很好玩!5.使用Array.every和Array.some求解一致/部分满足的条件。最后一个技巧更多的是关于使用新的(不是很新的)JavaScript数组函数来减少代码行数。 观察下面的代码,我们要检查是否所有的水果都是红色的:这个代码太长了!我们可以通过数组来减少代码,这样就清楚多了,对吧?同样,如果我们想检查是否至少有一个水果是红色的,我们可以使用Array.some只用一行代码来实现。 目前在做前台开发。如果你现在想学习前台开发技术,并且遇到任何关于学习方法、学习路线、学习效率等方面的问题。入门过程中可以申请加入我的前台学习交流裙:前:851中:231末:348。 有少量初学者裙档正在自学前台。还有少量我在做前台技术期间整理的前台学习手册、前台面试问题、前台开发工具、PDF文档、书籍和教程。如果需要,可以自己下载。 综上所述,我们一起来编写更具可读性的代码吧。 希望这篇文章能给你带来一点帮助。 就是这样~快乐编码!


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部