2KB项目,专业的源码交易网站 帮助 收藏 每日签到

关于 ECMAScript 2015(ES6)的一些有效的提示和技艺

  • 时间:2019-03-22 20:04 编辑:2KB 来源:2KB.COM 阅读:587
  • 扫一扫,手机访问
  • 分享
摘要:
ECMAScript 英文原文:Check out these useful ECMAScript 2015 (ES6) tips and tricks

EcmaScript 2015(别号 ES6 )已经公布好几年了,各种新功用现在都能以灵巧的办法应用。我想列出并谈判其中的一些我认为会对巨匠有所协助的实用功用。

假设你还知道其它技艺,请评论回答,我很情愿容许将其添入出去。

1. 强化对必需参数的恳求

ES6 供应了默许参数值,支持你设置一些默许值,以便在没有该参数的情况下调用该函数时应用。

不才图示例中,我们将 required() 函数的 a 和 b 参数设置默许值。这意味着假设 a 或 b 未被传递,那么 required() 函数将在调用时失掉一个差错。

2. 弱小的 “reduce”

Array 的 reduce 方法运用范围非常广泛。它但凡用于将一组数据转换成一个单一的值。真实你还可以用它干更多的任务。

注:大大大多数技艺都依托于初始值的外形,它是数组或Tools,而不是像字符串或变量多么的轻易值。

2.1 应用 reduce 同时履行映照和过滤

假定有么这一个用例,有一个列表,你想修改其中的每项(也就是映照)然后过遴选来其中一些(即过滤)。这个过程需求你对列表履行两次遍历!

下面这个示例中,我们把数组中的每项的值翻倍,然后选出一切大于 50 的值。留心,我们是怎样应用弱小的 reduce 方法来同时履行翻倍(映照)和过滤的?那是非常有效的办法。

其它翻译版本 (2) 加载中

2.2 应用 “reduce” 替换 “map” 或 “filter”

假设你仔细观察了上面的例子(在2.1中),你就知道 reduce 可用于遍历各项并对实在行过滤或映照! 

2.3 应用 reduce 适配括号Using reduce to balance parentheses

这里还有一个关于 reduce 普适性的例子。有一个包括括号的字符串,我们知道这些括号可否都相互适配,即“(”和“)”的数量可否相等,而且“(”可否在“)”之前出现。

我们可以像下面多么用 reduce 轻松处置。我们需求一个叫 counter 的变量用作计数器,其初始值为 0。假设我们碰着 ( 就加 1,碰着 ( 就减 1。假设它们完好适配,我们最后会失掉一个 0 值。

其它翻译版本 (1) 加载中

2.4 统计数组中重复数据 (数组 → Tools转换)

有时你需求统计数组中重复的数据,或将数组转换为Tools,你就可以够应用reduce了。

以下案例,我们将要统计有多少种类的汽车类型并将这些数据放置到一个Tools中。

别的,reduce还有十分多方面的运用,我举荐你阅读MDN所示的案例。

其它翻译版本 (1) 加载中

3. Tools解构

3.1 删除不想要的属性

十分多时分,当你想要删除不想要的属性——可能会因为他们包含敏感信息也许就是因为他们太大了。在 *rest* 参数中,除迭代全体Tools来删除他们这个方法之外,我们还可以轻易地提取这些属性变量,以保持有效的。

不才面例子中,我们想要删除 _internal 和 tooBig 属性。我们会给 _internal 和 tooBig 变量赋值并存储,当前,我们再应用 *rest* 参数 cleanObject 。

3.2 在函数参数中应用解构

下面的示例中的 engine 属性是 car Tools中的一个嵌入Tools。假设说我们需求 engine 的 vin 属性的话,可以像下面多么应用解构轻松完成。

3.3 吞并Tools

ES6 带来了扩展运算符(用 3 个点表示)。它但凡用于解构数组的值,不过它也可以用在Tools上。

下面的例子中,我们新Tools中应用扩展运算符来扩展Tools。第 2 个Tools中的键值对会掩饰第 1 个Tools中的键值对 [译者注:假设键名相似的话]。

下面示例中第 object2 的 b 和 c 两个键值对掩饰了 object1 中的同名键值对。

4. Sets

4.1 应用Sets去重

ES6中可以很随便的应用Sets去除重复数据,Sets只容许保管唯一数据。

4.2 应用数组的方法

将Sets转换为数组只需求轻易的应用的一个展开运算符( )。同时你也能在Sets里应用一切数组相关的方法。

如以下Set,我们只想保管一切大于3的数据(过滤不适配的数据)

5. 数组解构

十分多时分你的函数可能会前去一个数组中的多个值。我们可以颠末应用数组解构来轻松取得它们。

5.1 交换值

5.2 从一个函数中采取和赋值多个值

不才面的例子中,我们正在从/post上取得帖子,和存在/comments中相关评论。由于我们应用async / await,函数前去结果保管在数组中。应用数组解构,我们可以直接将结果直接分拨给呼应的变量。

假设你觉得这是有效的,请多次点击下面的点赞按钮,以表示你的支持!

我的其他发文

终端

  1. How to Jazz Up Your Terminal?—?A Step By Step Guide With Pictures 怎样使你得终端更幽默——配图逐步指南

React功用:

  1. Two Quick Ways To Reduce React App’s Size In Production 在生产中快速减小React App大小的两种方法

  2. Using Preact Instead Of React 应用Preact替换React

函数式编程

  1. JavaScript Is Turing Complete?—?Explained  详解JavaScript的图灵完备性

  2. Functional Programming In JS?—?With Practical Examples (Part 1) JS中的函数式编程——含实例(第一部分)

  3. Functional Programming In JS?—?With Practical Examples (Part 2) JS中的函数式编程——含实例(第二部分)

  4. Why Redux Need Reducers To Be “Pure Functions”  为什么Redux需求Reducer以完成“虚函数”

ES6

  1. 5 JavaScript “Bad” Parts That Are Fixed In ES6 ES6中已修正的5个JavaScript糟糕部分

  2. Is “Class” In ES6 The New “Bad” Part? ES6中的Class是新的糟糕部分吗?

WebPack

  1. Webpack?—?The Confusing Parts Webpack——困惑的部分

  2. Webpack & Hot Module Replacement [HMR] (under-the-hood)  WebPack及热模块交流(HMR,揭秘)

  3. Webpack’s HMR And React-Hot-Loader?—?The Missing Manual Webpack中HMR和React-Hot-Loader——损失的手册

Draft.js

  1. Why Draft.js And Why You Should Contribute 为什么应用Draft.js和为什么你需求贡献

  2. How Draft.js Represents Rich Text Data Draft.js怎样表示富文本数据

React和Redux :

  1. Step by Step Guide To Building React Redux Apps 逐步构建React Redux运用指南

  2. A Guide For Building A React Redux CRUD App (3-page app) 构建一个React Redux CRUD运用指南

  3. Using Middlewares In React Redux Apps 在React Redux运用中应用中间件

  4. Adding A Robust Form Validation To React Redux Apps 向React Redux运用中添加一个稳健的表单验证机制

  5. Securing React Redux Apps With JWT Tokens 应用JWT令牌的安全React Redux运用

  6. Handling Transactional Emails In React Redux Apps 在React Redux运用中处理事务型电子邮件

  7. The Anatomy Of A React Redux App 一个React Redux运用分析

  8. Why Redux Need Reducers To Be “Pure Functions” 为什么Redux需求Reducer以完成“虚函数”

  9. Two Quick Ways To Reduce React App’s Size In Production 在生产中快速减小React App大小的两种方法

本文中的一切译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译Task依照 CC 协议,假设我们的Task有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部