内容基本是今年从其他大神的文章学习到的东西。出处在底下。

1、Array.includes 与条件判断

一般我们判断或用 ||

如果我们有更多水果

2、Set 与去重

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。

数组去重

Array.from 方法可以将 Set 结构转为数组。我们可以专门编写使用一个去重的函数

字符去重

另外 Set 是如此强大,因此使用 Set 可以很容易地实现并集(Union)、交集(Intersect)和差集(Difference)。

3、Map 与字典类型数据

一般而已,JavaScript 实现字典数据是基于 Object 对象。但是 JavaScript 的对象的键只能是字符串。对于编程来说有很多不便。 ES6 提供了 Map 数据结构。它类似于 Object 对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值,字符串、数值、布尔值、数组、对象等等都可以当作键。

Map 的遍历顺序就是插入顺序

4、函数式的方式处理数据

按照我的理解,函数式编程主张函数必须接受至少一个参数并返回一个值。所以所有的关于数据的操作,都可以用函数式的方式处理。

假设我们有这样的需求,需要先把数组 foo 中的对象结构更改,然后从中挑选出一些符合条件的对象,并且把这些对象放进新数组 result 里。

从直觉上我们很容易写出这样的代码:

使用函数式的写法,可以优雅得多

数组求和

5、compose 与函数组合

以下代码称为组合 compose

由于函数式编程大行其道,所以现在将会在 JavaScript 代码看到大量的箭头()=>()=>()=>的代码。

ES6 版本 compose

在 compose 的定义中, g 将先于 f 执行,因此就创建了一个从右到左的数据 流。这样做的可读性远远高于嵌套一大堆的函数调用.

我们选择一些函数,让它们结合,生成一个崭新的函数。

reverse 反转列表, head 取列表中的第一个元素;

但是我们这个这个compose不够完善,只能处理两个函数参数。redux源码有个很完备的compose函数,我们借鉴一下。

有了这个函数,我们可以随意组合无数个函数。现在我们增加需求,组合出一个lastAndUpper函数,内容是先reverse 反转列表, head 取列表中的第一个元素, 最后toUpperCase大写。

作者:廖振廷

原文链接:https://zhuanlan.zhihu.com/p/54758068

2019 年编写现代 JavaScript 代码的5个小技巧相关推荐

  1. JavaScript 工作原理(二)-如何在 V8 引擎中书写最优代码的 5 条小技巧(译)

    From:https://segmentfault.com/a/1190000014770145 原文请查阅这里,略有删减. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScrip ...

  2. JavaScript 工作原理之二-如何在 V8 引擎中书写最优代码的 5 条小技巧(译)

    原文请查阅这里,略有删减. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第二章. 本章将会深入谷歌 V8 引擎的内部结构.我们也会为如何书写更好的 Java ...

  3. 前端每周清单第 7 期:Vue现状与展望、编写现代 JavaScript 代码、Web 开发者安全自检列表...

    前端每周清单第 7 期:Vue现状与展望.编写现代 JavaScript 代码.Web 开发者安全自检列表 为InfoQ中文站特供稿件,首发地址为这里:如需转载,请与InfoQ中文站联系.从属于笔者的 ...

  4. 写出漂亮代码的45个小技巧

    不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默地问候这个留坑的兄弟. ...

  5. 5 个JavaScript中使用JSON的小技巧

    关于 JavaScript的JSON的一些小技巧 1.格式化 默认的字符串化器还会缩小 JSON,看起来很难看 const user = { name: 'John', age: 30, isAdmi ...

  6. 提升 JavaScript 技能的5个小技巧,新手小白值得学习!

    在使用 JavaScript 时,我们常常要写不少的条件语句.这里有五个小技巧,可以让你写出更干净.漂亮的条件语句. 1. 使用 Array.includes 来处理多重条件 举个栗子 : // 条件 ...

  7. 写出漂亮代码的45个小技巧,真好用

    大家好,我是三友~~ 不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默 ...

  8. 提升效率:优化Java代码的35个小技巧

    每天早晨,干货准时奉上! 本文作者:萌小Q 来源: www.cnblogs.com/Qian123/p/6046096.html 前言 代码优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方 ...

  9. 大神和小白都在用的,敲代码需要掌握的小技巧,让你告别低效率工作!

    大家好~我是李拜天,一个希望每天都是礼拜天的程序员. 大家用学python用的最大的编辑器应该是Pychram,在这我分享几个在学习和工作中最常用的Pychram小技巧. 1.快速查看库源码 经常听人 ...

最新文章

  1. NeHe OpenGL教程 第四十课:绳子的模拟
  2. 2.两个VLAN通过一个交换机与路由器的连接
  3. ORACLE 外部表的简单使用
  4. php 浮点型float 强转int php金额计算 php元转分
  5. TCP协议属性设置之SO_LINGER属性
  6. 持续更新的Zookeeper知识总结
  7. win8.1 服务器正在运行,Win8.1系统打开IE浏览器提示服务器正在运行中的解决方法图文教程...
  8. CentOS6.5搭建MySQL5.1主从复制
  9. pythonmt4通讯swot矩阵_SWOT矩阵分析法
  10. android实现截屏分享,Android截屏、保存、分享
  11. 开发版速达扩展功能-提供便捷的界面布局功能
  12. 基于ShardingSphere的Encrypt-JDBC数据脱敏实战
  13. cuba_认识CLI for CUBA平台
  14. Vivado IP核之复数浮点数乘法 Floating-point
  15. mx4 pro 刷 原生 android,如期而至:MX4 Pro 迎来首个 Android 5.0 体验固件
  16. iOS关于图片点到像素转换之杂谈
  17. matlab找多项式最值,如何利用matlab计算最小多项式
  18. 全国计算机等级考试三级数据库知识点总结!
  19. 人脸识别门禁项目总结(STM32部分)
  20. 100集华为HCIE安全培训视频教材整理 | Agile Controller产品定位

热门文章

  1. poh用计算机,诚实性证明POH:可验证计算的可实现概率解
  2. linux 日志面试题,Linux运维 | 面试题
  3. 华为p20Android怎么解开,华为P20如何获得root权限来解决自启动手机应用程序的问题...
  4. 中加学校计算机考试题,嘉应学院2009年计算机期末考试试题
  5. ie 无法运行php,PHP会话无法在IE中运行
  6. Java中的SPI(Service Provider Interface介绍及示例
  7. win10系统,virtualBox导入centos7.3报错
  8. idea新建web工程
  9. Java讲课笔记09:类与对象
  10. 大数据学习笔记53:Flume Sink Processors(Flume接收器处理器)