免费在线版本 (非印刷免费在线版) InfoQ 中文站出品 本书由 InfoQ 中文站免费发放,如果您从其他渠道获取本书,请注册 InfoQ 中 文站以支持作者和出版商,并免费下载更多 InfoQ 企业软件开发系列图书。 © 2015 InfoQ China Inc. 版权所有 未经出版者预先的书面许可,不得以任何方式复制或者抄袭本书的任何部分, 本书任何部分不得用于再印刷,存储于可重复使用的系统,或者以任何方式 进行电子、机械、复印和录制等形式传播。 本书提到的公司产品或者使用到的商标为产品公司所有。 如果读者要了解具体的商标和注册信息,应该联系相应的公司。 欢迎共同参与 InfoQ 中文站的内容建设工作,包括原创投稿和翻译,请联系 editors@cn.infoq.com 卷首语 曾经听许多前端从业者说:“前端发展太快了。”这里的快,十有八九是说层出不穷 的新概念,余下的一二,大抵只是抒发一下心中的苦闷罢——前两日刚习得的新技术转 眼就“落后”——仔细品味这苦闷,除却不得不持续奔跑的无奈,更多的是一口气,一口 卯足了劲儿也要把新知识全数揽入囊中的不服气。作为刚入行的新人,对这点体会颇深。 就像是蓦地从某个时间点切入,半数时间向前走,半数时间向后看,瞻前顾后,回味揣 摩这十年间的岁月精魄,还得翘首盼着花花新世界,不时再问自己一句,这样走下去真 的会好么?是的,其实答案人尽皆知,同时也无人知晓,因为没人能预言未来,顶多只 能预测未来,但有一件事情永不会错,当你笃定地沿着一条路走下去,结果通常不会太 糟糕,但凡能在浮躁的社会冷静下来潜心磨砺,多少总会有收获。幸而我有意弱化了对 新信息的执念,开始做一些事情, 《深入浅出 ES6》就是其中一件。 纵观整个系列,亦即纵观 ECMAScript 2015 的整个体系,吸取了诸多成功经验:借 鉴自 CoffeeScript 的箭头函数;始于 C++项目 Xanadu,接着被 E 语言采用,后来分别 于 Python 和 JavaScript 框架 Dojo 中以 Deferred 对象的面貌出现的 Promise 规范(详见 Async JavaScript 一书 3.1 章) ;借鉴了 C++、Java、C#以及 Python 等语言的 for-of 循环 语句;部分借鉴 Mustache、Nunjucks 的模板字符串。 当然,新的语言体系也在之前的基础上查漏补缺:弥补块级作用域变量缺失的 let 和 const 关键字;弥补面向大型项目缺失的模块方案;标准委员会甚至为 JavaScript 增 加了类特性,有关这一方面的特性褒贬不一,Douglas Crockford 曾在 2014 年的 Nordic.js 大会发表了题为《The Better Parts》的演讲,重新阐述了他个人对于 ECMAScript 6 的看 法,他认为 Class 特性是所有新标准中最糟糕的创新(我个人也略赞同这一说法,类的 加入虽然有助于其它语言的使用者开始使用 JavaScript,但是却无法发挥出 JavaScript 原型继承的巨大优势) ;以及为了保持非侵入式弥补其它新特性而诞生的 Symbols。 1 其它的新特性也相当诱人,熟练掌握可以大幅度提升开发效率:迭代器 Iterator、 生成器 Generators、不定参数 Rest、默认参数 Default、解构 Destructuring、生成器 Generator、代理 Proxy,以及几种新类型:Set、Map、WeakSet、WeakMap、集合 Collection。 以上提及的新特性只是其中的一部分,更多的新特性等待着大家进一步挖掘。整个 系列的翻译历时 150 余天,坚持专栏翻译的日子艰苦也快乐,编辑徐川细心地帮我审校 每一篇文章,编辑丁晓昀赠予钱歌川先生详解翻译之著作让我大开眼界,与李松峰老师 的交流也让我深刻理解了“阅读、转换、表达”的奥义所在,最感谢我的母亲,在我遇到 困难需要力量的时候永远支持着我。选择 ES6 作为前端生涯的切入点实之我幸,恰遇 这样的机会让我可以一心一意地向前走,向未来走。我很敬佩在“洪荒”和“战乱”年代沉 淀无数经 验的前辈们,你们在各种不确定的因素中左右互搏,为终端用户提供统一的 用户体验,直到如今你们依然孜孜不倦地吸取业内新鲜的经验。技术在进步,也为前端 人 提供着无限的可能性,我们有责任也有义务去推动新标准的发展和普及,诚然在商 业的大环境下我们不愿放弃每一寸用户的土壤,但携众人之力定将能推动用户终端 的 革新。ES7 标准的提案纷纷提上日程,用不了多久也将登上前端大舞台。也感谢午川同 学友情提供译文第十章“集合 Collection” ,让我在困难时期得以顺利过渡。最后祝愿 国内前端社区向着更光明美好的未来蓬勃生长! 2 目录 卷首语............................................................................................................................ 1 ES6 是什么 .................................................................................................................... 5 迭代器和 for-of 循环 .................................................................................................... 8 生成器 Generators ...................................................................................................... 16 模板字符串.................................................................................................................. 26 不定参数和默认参数.................................................................................................. 34 解构 Destructuring...................................................................................................... 39 箭头函数 Arrow Functions ........................................................................................ 50 Symbols........................................................................................................................ 59 学习 Babel 和 Broccoli,马上就用 ES6 .................................................................... 68 集合.............................................................................................................................. 79 生成器 Generators,续篇 .......................................................................................... 89 代理 Proxies.............................................................................................................. 103 类 Class ..................................................................................................................... 117 let 和 const ................................................................................................................. 125 子类 Subclassing ...................................................................................................... 134 模块 Modules............................................................................................................ 146 展望未来.................................................................................................................... 156 3 1 ES6 是什么 欢迎来到 ES6 深入浅出!JavaScript 的新版本离我们越来越近,我们将通过每周一 节的系列课程一起探索 ECMAScript 6 新世界。ES6 中包含了许多新的语言特性,它们 将使 JS 变得更加强大,更富表现力。在接下来的几周内,我们将一一深入了解它们。 但在我们开始详细学习之前,我认为十分有必要花几分钟讲解一下 ES6 到底是什么, 以及你可以从中学到什么! ECMAScript 发生了什么变化 编程语言 JavaScript 是 ECMAScript 的实现和扩展,由 ECMA(一个类似

pdf文档 ES6-in-depth

计算机 > JavaScript > javascript > 文档预览
168 页 0 下载 419 浏览 0 评论 0 收藏 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
ES6-in-depth 第 1 页 ES6-in-depth 第 2 页 ES6-in-depth 第 3 页 ES6-in-depth 第 4 页 ES6-in-depth 第 5 页
下载文档到电脑,方便使用
还有 163 页可预览,继续阅读
本文档由 user2020-12-27 09:11:11上传分享
给文档打分
您好可以输入 255 个字符
DocHub文库的中文名是什么?( 答案:多哈 )
评论列表
  • 暂时还没有评论,期待您的金玉良言