前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【译】《Understanding ECMAScript6》- 简介

【译】《Understanding ECMAScript6》- 简介

作者头像
寒月十八
发布2018-01-30 12:01:39
8550
发布2018-01-30 12:01:39
举报
原书线上阅读地址https://leanpub.com/understandinges6/read/

JavaScript又称为ECMAScript,其核心功能遵循ECMA-262规范,浏览器环境JavaScript与Node.js的JavaScript是ECMAScript的两个超集。即使浏览器和Node.js通过扩展对象和函数来增加新功能,但语言仍然保留ECMAScript的核心功能,所以ECMA-262的发展对JavaScript语言是至关重要的。

2007年是JavaScript发展的分水岭。Ajax的流行使web应用拥有了丰富的动态性,而截止至当时,自1999年制定ECMA-262的第三版规范,JavaScript没有任何发展。随后,TC-39委员为了促成ECMAScript 4(简称ES4)规范,制定了大量的新规范草案,包括新的语法、模块、类、类式继承、对象私有变量,以及可选类型注释等等。

由于ES4草案的改动过于庞大,TC-39组织内部产生了分歧。部分成员认为ES4的改动太多难以实现。来自Yahoo、Google和微软的核心成员商议出一套替代方案,命名为ECMAScript 3.1,预示此版本是现有ES3规范的递增版本。

ES3.1引入了非常少量的语法修改,而是专注于属性的修改、原生JSON的支持和为现存对象添加新方法。虽然规范制定组织尝试统一ES3.1和ES4的发展趋势,但由于组织内部两个阵营对语言发展方向有根本性的分歧,这样的尝试终归失败了。

2008年,JavaScript的创始人Brendan Eich宣布TC-39组织将工作集中于推进ES3.1的标准化。并且在ECMAScript下个标准化版本面世之前暂时搁置ES4的语法和功能修改。组织的所有成员将致力于融合ES3.1和ES4的精华部分,取名ECMAScript Harmony(寓意和谐)。

随后,ES3.1发展成为了ECMA-262规范的第五个版本,也就是ES5。TC-39组织将会封存ES4标准以避免与现有规范的冲突,转而将工作集中于ECMAScript Harmony上,ECMAScript 6(简称ES6)便是在这种“和谐”精神下诞生的第一个产物。

ES6于2014年定稿,此次规范的修改非常宽泛,涉及新对象、模式、语法、以及现有对象的扩展等等。这些改动致力于解决目前开发者们遇到的实际问题。从市场环境来看,ES6投入开发使用之前仍然需要很长时间等待浏览器完善;并且从开发者角度,仍然缺乏对ES6新功能的深入理解。

浏览器和Node.js的兼容性

最为JavaScript最主要的运行环境,web浏览器和Node.js在不断完善对ES6的支持。本书不会细究运行环境的冲突及兼容性,而是重点讲解规范的细则。因此,读者所用的JavaScript运行环境可能会存在与规范不同的地方。

本书适用人群

本书适用于对JavaScript和ES5有一定了解的读者。对JavaScript语言深层机制的了解有助于理解ES5和ES6的区别。如果您是JavaScript的中高级开发人员,并且对语言的未来有期望的话,本书将是您很好的选择。

本书并不适用于对JavaScript不了解的读者。

概览

第一章: 基础知识,主要介绍语言的一些细微改动。ES6中的一些新功能不涉及语法的改动,相当于ES5的增量功能。

第二章: 函数,介绍各种函数有关的改动,包括箭头函数(arrow function form)、默认值参数(default parameters)、剩余参数(rest parameters)等等。

第三章: 对象,介绍对象在创建、修改和使用中的一些改动。包括语法的改动,以及最新的Reflection API。

第四章: Symbols,介绍Symbols类型的概念,以及一种定义属性的全新方式。Symbols是一种原始类型,可以用来掩盖(不是隐藏)对象的属性和方法。

第五章: 数组,介绍现有数组的改动和一些有趣的新方法。

第六章: 集合类型,介绍ES6引入的集合类型,比如setWeakSetMapWeakMap。集合类型通过语义强化、删除重复内容和内存管理的方式对数组类型做了增强和扩展。

第七章: ,JavaScript正式引入类的概念。为了避免其他语言使用者对此的困惑,JavaScript类的语法非常简明易懂。

第八章: 迭代器和生成器,ES6引入迭代器和生成器的概念,通过迭代器和生成器,可以更有效的处理数据。

第九章: 代理,ES6新加入的代理对象,通过代理对象可以打断一个对象任何正在执行的操作。代理模式使开发者更加灵活地操作对象,并且可以在此基础上探索各种新型的交互模式。

第十章: Promises,Promise对象用来进行延迟和异步运算,现已被大量的第三方框架支持。ES6将其标准化并加入语言特性。

第十一章: 模块,JavaScript中正式加入模块的概念,目前大量且不统一的模块应用规范将会被ES6规范取代。

第十二章: 模板字符串,模板功能可以令开发者用相对安全的方法创建DSL(Domain Specific Language,领域专用语言)。

第十三章: Reflection,ES6新加入的reflection API可以令对象的解析精细到粒度级别。

帮助和支持

您可以在GitHub提交issue、意见和pull request:https://github.com/nzakas/understandinges6

如果有其他疑问,可以访问以下地址进行反馈:http://groups.google.com/group/zakasbooks

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-10-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原书线上阅读地址:https://leanpub.com/understandinges6/read/
  • 浏览器和Node.js的兼容性
  • 本书适用人群
  • 概览
  • 帮助和支持
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档