JavaScript 新书:探索 ES2016 与 ES2017

探索 ES2016 与 ES2017 Exploring ES2016 and ES2017

一本关于 ECMAScript 2016 和 ECMAScript 2017 新版本的 JavaScript 书。

本书目录

继续阅读

关于 《探索 ES2016 与 ES2017》

本书是关于 ECMAScript 2016 和 ECMAScript 2017 新版本的 JavaScript 。

本书只涵盖这两个新版本中的新特性。 有关以前版本的信息,请参考我的以下书籍(可以在线阅读):

  • 写给程序员的 Javascript 入门(涵盖 ES5 内容):“Speaking JavaScript
  • ECMAScript 6 (ES2015) 新特性介绍:“探索 ES6

本书的内容

“探索 ES2016 与 ES2017”是一本“活”的书,许多多内容即将被加入! 购买此书,你将得知 ECMAScript 2016 和 ECMAScript 2017 的最新特性:

  • ES2016 已经完成,这本书介绍了其内容,内容不多。
  • ES2017 现已完成。主要的新特性包括:

TC39 处理 ECMAScript 新特性的工作流程

本章解释了所谓 TC39 的工作流程,它以 ECMAScript 2016(ES7)为起点,阐述了ECMAScript特性的设计。

谁设计了 ECMAScript ?

答案是:TC39(技术委员会39)。

TC39,是一个推动 JavaScript 发展的技术委员会。其成员是公司(其中包括所有主要浏览器厂商)。TC39 定期举行会议,其会议是由成员公司派代表和特邀专家出席。会议纪要可在线获取,以便于我们更好的了解 TC39 工作流程。

偶尔(甚至在这本书中),你会看到 TC39 成员指的是某一个人。 它的意思是:由 TC39 成员公司派出的代表。

有趣的是,TC39 以协商一致方式运作:决定要求大多数人同意,没有人强烈反对以致否决。 对于许多成员来说,一致通过的决议将会产生真正的义务(他们将必须实现这些达成一致的功能等)。 继续阅读

ES2016 和 ES2017 常见问题

ECMAScript 2016 精简表明新版本的发布过程(如上一章所述))有效:

  • 新特性只有在它们完全准备好之后,并且在至少有两个经过充分现场测试的实现之后才会被包含进来。
  • 发布频率更高(每年一次),甚至可以更多。

ES2016将为大家(TC39,引擎实现者,JS开发人员)提供时间来消化 ES6 的内容,并在 ES6 重大发布之后迎来一个可喜的突破。 继续阅读

ES2016 新特性:Array.prototype.includes

本章介绍由 Domenic Denicola 和 Rick Waldron 提议的 ECMAScript 2016 新特性 Array.prototype.includes

概述

> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false

数组方法 includes

数组方法 includes 有以下签名: 继续阅读

JavaScript: 2016年回顾

翻译自:https://www.sitepoint.com/javascript-2016-in-review/

2016年是意义重大的,奇怪的,欢欣鼓舞 / 可怕的一年,这取决于你的观点。与其他事件相比,只专注于JavaScript可能看起来无关紧要,但它是每个Web开发人员的工作生活的一个巨大的一部分。

JavaScript 人气持续爆涨。不是每个人都喜欢这门语言,但是现在你可能很少听到十年前嘲笑的评论。就个人而言,我一直喜欢JavaScript – 即使在早期,令人沮丧的年头。那些从C++,Java或PHP方向过来使用它的人可能首先会感到困惑:JavaScript看起来似曾相识,却又如此陌生。克服你的推断,你会欣赏它简单的优雅,实用性和灵活性。(That said, date handling is still a nightmare!,这就是说,日期处理仍然是一场噩梦!愚人码头看不懂这句是什么意思。)

JavaScript在五月迎来了它第21个生日,让我们回顾一下它刚成熟的第一年……

ECMAScript演变

ES6 / 2015是这门语言自诞生以来最重要的更新。这份规范花了7年才完成,但现在浏览器和其他运行运行环境终于开始支持箭头函数,let,const,代理和更多令人喜悦的特性。ES6的兼容性也慢慢变得很好

如果你需要支持更老版本的浏览器,完全切换到ES6可能还有点早。更老版本的意思是,一年多前发布的任何东西。您可以使用编译器将ES6转译为ES5,如Babel,但是如果你不引入额外的构建步骤,开发就会变得复杂。

ES7/2016比起革命更像是一种进化。一个令人激动的新特性是async,它允许以同步的方式编写异步代码,而不需要回调或Promise的复杂语法(它让我一直很头疼)。 继续阅读

你可能不再需要Underscore

过去几年像 Underscore 和 lodash 等库进入许多JavaScript程序员的工具函数中。虽然这些工具库可以使你的代码写起来更容易,但是他们不一定使代码更简单或更容易理解。

各种工具函数库层出不穷,每个工具库的写法也各有不同,这样给阅读和维护你代码的人也带来了一定的困难,以为他必须了解你使用的这个这个工具库的函数做了什么事情。

JavaScript不断发展,新ES2015和ES2016版本(以前分别称为ES6和ES7)包了一堆新功能特性,并很容易使用它们。这些特性使得工具库以前的一些基本功能已经过时。

所以你可能不再需要Underscore。

例子:

这些例子说明,ES5.1,ES2015和ES2016做这些事情很容易,你可能不需要一个实用程序库了。ES5已经得到了所有现代浏览器和node.js的支持,要是想支持传统浏览器(比如IE8),还需要像es-shim这样的帮助脚本。

Arrays(数组)

Iterate(迭代)

  • Underscore
    _.each(array, iteratee)
  • ES5.1
    array.forEach(iteratee)

Map

  • Underscore
    _.map(array, iteratee)
  • ES5.1
    array.map(iteratee)

继续阅读