大哥你JavaScript可能不太需要switch
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
无"switch" 不欢
Java的大佬非常喜欢switch,JavaScript开发人员也是如此。老实说,我们的开发人员很懒惰,对于像我这样缺乏创造力的人来说,很容易坚持现状。
switch很方便:给定一个表达式,我们可以检查它是否与一堆case子句中的其他项匹配。考虑以下示例:
当名称为Juliana时,我们将打印一条消息,并立即通过退出break。当switch在函数内部时break,只要您从每个子句返回,就可以省略。
当没有匹配项时,您还可以具有默认分支:
switch 在 Redux reducers 当中大量使用,通过 Redux Toolkit 简化了样板,避免了一大坨 if 语句
还不错,没什么问题,但是我们还能有更好的选择么?
借鉴Python
来自Telmo的这条推文引起了我的注意。他展示了两种“切换”样式,其中一种非常接近Python中的相似模式。
Python没有switch,它可以教我们一个更好的替代方法,以取代我们钟爱的混乱switch。首先让我们将代码从JavaScript移植到Python:
在Python中,我们可以将switch使用字典进行模拟。这种default情况由dict.get()替代默认值。
当访问一个不存在当key,python可能会出现一个KeyError
这个.get()方法是直接通过key值访问的一种更安全的替代方法,因为它不会导致报错,并可以为不存在的键指定默认值:
因此,Python中的这一行:
在JavaScript中等效于:
让我们将相同的Python风格的代码使用在JavaScript中。
替代switch
如果我们想要摆脱switch,我们可以这么做:
看起来清爽多了,这么棒的反馈可能要感谢现代JavaScript,对象计算属性值在ES2015中的出现,同时要感谢展开语法的出现,让...state可以直接展开,简化写法,更加清晰。
你喜欢这种处理方式吗?当然这和switch相比是有一定局限的,至少对于一个reducer来讲,这可能是更简洁的技巧吧。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-04-26
本文作者:黄梵高
本文来自:“掘金”,了解相关信息可以关注“掘金”

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
用Python开发Fabric区块链应用
Hyperledger Fabric是最流行的联盟区块链平台。Fabric区块链Python开发详解课程涵盖Fabric区块链的核心概念、Fabric网络搭建、Node链码开发、Python应用开发等,并提供关键知识点的预置代码,适合Python工程师快速掌握Fabric区块链应用开发技能。访问网址:Fabric区块链Python开发详解。 1、Fabric区块链Python开发课程概述 Hyperledger 是一个旨在推动区块链跨行业应用的开源项目, 由 Linux基金会在2015年12月主导发起该项目, 成员包括金融、银行、物联网、供应链、制造和科技等多个行业的领头羊,托管了众多面向企业的区块链开源框架和工具: Hyperledger Fabric(后文简称Fabric)是其中发展最好的一个__企业级区块链平台__,最初由Digital Asset和IBM贡献,目前已经应用于沃尔玛的食物溯源链(Foodtrust)和马士基的物流跟踪链(TradeLens)中,代表了当下企业级区块链应用的最高水平。可以认为Fabric是一种联盟链(Consortium Blockchain)平台,...
- 下一篇
MDJS:可将 JavaScript 添加到 Markdown,创建交互式文档
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Open Web Components( @OpenWc )创建者 Thomas Allmer 发布了 MDJS ,这是一种 Markdown 变体,支持在 Markdown 文档中包含可运行的 JavaScript 代码。MDJS 可以解释为常规的 Markdown 内容,也可以进一步升级为带有为 Web 组件的交互式文档。MDJS 通过三个新结构增强了 Markdown 的代码块语法:script、story、preview-story。以下 Markdown 源代码: ```js script import './my-component.js'; ``` # This is my component <my-component></my-component> 将生成下面的 JavaScript 和 HTML 代码: import './my-component.js'; <h1>This is my component</h1>...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果