JavaScript 二十年
  • 推荐0
  • 收藏1
  • 浏览628

JavaScript 二十年

王译锋 (作者) 

  • 书  号:978-7-121-40868-7
  • 出版日期:2021-05-07
  • 页  数:204
  • 开  本:16(170*240)
  • 出版状态:上市销售
  • 维护人:张春雨
纸质版 ¥79.00
本书主要讲述了从 1995 年到 2015 年这20年间,JavaScript在创建、设计和演变方面所经历的过程。全书分为4个部分,每个部分都涵盖了 JavaScript 发展和演化的一个主要阶段,其中不仅涉及语言发展的技术细节,还介绍了人们和组织如何在竞争与合作中逐渐塑造 JavaScript 语言的故事。
本书适合JavaScript初学者和开发人员阅读和使用,也适合非JavaScript从业者翻阅。
来自JavaScript语言发明人与标准制定者技术简史||是技术书也不是技术书读后收获将远超技术||全球JS KOL齐聚撰文赞誉力荐
推荐序
一幅画是一个加法的总和。至于我,一幅作品如同一个减法的得数。——毕加索
版画《公牛》是毕加索的代表作之一,它记录了这位绘画大师如何在十余次的描摹与抽象迭代后,在最终的作品中深刻地体现了牛的健壮、斗志及其外在的结构特征。然而,并不是每件作品的创作历程都能得到这样的记录和展示。
JavaScript 从最初的一个可用成品发展到如今最优秀的跨端语言之一,在这个过程中既有激昂的战斗,也有悄然的沉没。它曾是“独拥天下的王者”,但也历经“濒死复生的涅槃”。
荣光的背后是十多年的灰暗时代,即便是 ES5,也只如同一道曙光却未能让 JavaScript走出语言特性匮乏的阴霾。包括我在内的许多人,在多年之后仍然惊讶于人们在那个时代的绝望与沉默,多数人选择了在 ES3 的基础上添加一个又一个的语言扩展包,把JavaScript 打造成“自己想要的样子”——其实更像其他某种语言的模样。而同时我们
又对每个与之类似的东西付之一笑 :这要么又是一个轮子发明,要么又是一个空想世界。
在 TC39 的不懈努力下,如今的 JavaScript 已经成为了另一个“加法的总和”。这种以产品化与应用性为主导的力量推动了 JavaScript 得以被重新定义并再次启程,而曾经厂商之间的博弈、规范制定者的取舍、社区中褒贬不一的声音等都湮没在了历史的沙尘中。
与毕加索最终画成的极简风格的抽象公牛相反,JavaScript 已经从早期的简单粗陋进化到如今的异常复杂。如同所有伟大的设计作品一样,JavaScript 也有着独特的思想、美好的期望,加上其本身的混合语言特性,我们已经很难再从这种语言中找到如同“牛的抽象”般的内在实质。而如果我们要从渐行渐远的历史片段中寻找和获取这样的实质,
是需要拥有像毕加索一样的独特的透视能力与抽象技法的。如果未能领悟 JavaScript 的结构与性质,也就无法有效地推动它的进化,它可能因此变得不伦不类,甚至成为其他语言的代名词。
抽象的加法是在其减法之后再进行的。在某个时刻,向系统中增加一个特性远比删减一个特性更难。这是在 ES6 之后 TC39 面临的最大挑战,也是我们深入理解和应用JavaScript时必须面对的真相。而本书足以让读者去探索那些不朽思想与远大期望的由来,
追溯 JavaScript 自诞生以来所存的精神实质。我们将看到 Eich 对早期 JavaScript 的忆述,以及 Allen 在 TC39 工作中推进 ECMAScript 的详实记录。其中的每一个人、每一种选择、每一次“牺牲”,都通过作者独到的视角、敏锐的观察和深刻的理解呈现在我们面前。
感谢作者和译者带给我们的关于 JavaScript 的真实且深刻的记录,向我们完整地展示了JavaScript 的成长过程。这本书如同“毕加索的牛”一般,让我们看见了思想的碰撞、言辞的论辩,以及看似决断之下的内心挣扎。我真诚地向你推荐它!
——周爱民
2021 年 4 月 3 日

译者序
作为经常因面试而接触同行的前端开发者,我常常感叹于 JavaScript 的用途之广。无论是农业、娱乐业,还是航天、军工等行业,都存在基于 JavaScript 的 Web 技术栈所实现的各种项目。毫无疑问地,JavaScript 深刻地影响着这个世界。
值得庆幸的是,和行业先驱者的直接交流尚属“年轻的”计算机业界的特权。试想,今天的火箭工程师们还有机会向冯布劳恩和科罗廖夫请教经验吗?尤其像编程语言这样深受历史决策影响的领域,要想解读诸多特性设计上的取舍,更需要了解其历史渊源。所幸在本书两位作者 Allen Wirfs-Brock 和 Brendan Eich 的努力下,JavaScript 从诞生到成
熟的二十年演化历史终于得到了系统性的整理和沉淀。从 ES1 的诞生到 ES4 的失意,再到 ES5 的妥协与 ES6 的成功,作为这段历史进程的权威参与者和见证者,两位作者正是最适合完成这项工作的人选。
在历史长河中,二十年看似微不足道,但足以使一个孩子长大成人,使一种编程语言脱胎换骨。1995 年,当 Brendan Eich 在十天的时间里写出 Mocha 解释器时,我才刚满一周岁 ;当 Allen Wirfs-Brock 在 TC39 组建茶歇联盟并合纵连横反对 ES4 时,我还在上初中。回顾自己小时候照片的同时,联想一下彼时的 JavaScript 发展到了什么程度,实在是一件很有趣的事情。
作为译者,我有幸邀请到了前端社区的许多知名人士为本书撰写推荐语,其中不仅有年过花甲的 Douglas 老先生,也有出生在 21 世纪的“小朋友”。这些来自不同时代、具有不同背景的人们,因为互联网和 JavaScript 而产生了互动和联系,这也让我感受到了行业的发展和传承。我坚信,能用 JavaScript 实现的东西还有很多,回顾历史,会让我们能更好地面向未来。
感谢稿定科技提供的宽松的工作环境,使我有条件利用业余时间完成本书的翻译工作。
感谢博文视点的张春雨老师对纸质版图书项目的悉心策划,以及编辑张爽的耐心校订。
最后特别感谢我的妻子林瑾瑜,她的陪伴和鼓励使我能愉快地完成这项工作。
——王译锋(雪碧)
2021 年 4 月

中文版序
语言是人类的核心,是定义人类社区的主要因素。当 Tim Berners-Lee 定义万维网技术时,他实现了人类从未拥有过的东西,即一个可能覆盖了世界上所有人的社区。万维网的基础是一组人造的语言 :HTML、CSS 和 JavaScript。正是这些语言,使人们能够编织和分享 Web 的内容。
自然语言产生于许多世纪以前,并以冰川形成般的速度缓慢发展,我们几乎不会注意到它们所发生的变化。而人造的计算机语言在这方面则有所不同,它们通常由个人发明,且其快速进化的过程是由同一个人或其他个别人所指导的。Web 编程语言的进化,则是由各种国际人员组成的技术委员会中不断变化的成员的共识所推动的。由于人们的参与,因此这不只是一项技术进程,也是一项社会进程。
本书讲述了 JavaScript 编程语言的创建及其前 20 年的演化故事。这个故事并不仅仅是关于一项技术的,也是关于塑造这项技术的人和组织的。Brendan Eich 和我都希望,它能展示关于 JavaScript 起步的权威历史。
参与这个故事的个人、组织和国际委员一般会用英语交流和记录他们的工作,这使得不精通英语的万维网社区成员很难独立理解和研究 JavaScript 的历史。我很高兴地得知王译锋将我们的工作内容翻译成了中文版本。我希望这能让中国的 Web 开发者有机会更好地了解这项重要的技术,这或许能激励一些人积极地参与到 JavaScript 下一阶段的发展中来。
Allen Wirfs-Brock
美国俄勒冈州舍伍德 2020 年 10 月

前言
2020 年,万维网已经无处不在。整个网络上有超过 10 亿个网站,它们都可以经由数十亿个与其相连的设备来访问。在所有设备上都运行着网络浏览器一类的程序,用于处理和显示这些网站的页面,而这些页面中的大部分嵌入或加载了用 JavaScript 编程语言所编写的代码。2020 年的 JavaScript 可能是世界上获得最广泛部署的编程语言。Stack Overflow 2018 年的调查显示,JavaScript 已被 71.5% 的专业开发者使用,这使其成为了世界上使用最广泛的编程语言。
本书主要讲述了 JavaScript 从 1995 年到 2015 年之间的创建、设计和演变过程。但本书所介绍的并不仅仅是语言的技术细节,还有人们和组织是如何在竞争与合作中逐渐塑造出 JavaScript 语言的故事。JavaScript 主导了 2020 年的 Web 开发。
这个故事相当漫长而复杂。为了让读者更容易理解,本文主要分为 4 个部分,每个部分都涵盖了 JavaScript 发展和演化的一个主要阶段。在各部分之间会有一段简短的插曲,其中介绍了当时的软件开发者是如何看待和使用 JavaScript 的。
1995 年,Web 和 Web 浏览器还是新技术,当时 Netscape 公司曾主导过 Web 浏览器的开发。JavaScript 在 1995 年 5 月由该公司的 Brendan Eich 设计实现,他是本书的作者之一。
JavaScript 旨在成为一种简单且易于使用的动态语言,其代码片断能被包含在网页的定义之中。浏览器会在渲染页面时解释执行这些代码片段,使页面能动态定制其展示形式,并响应用户交互。
第一部分“语言诞生”介绍的是 JavaScript 的诞生和早期演化。这部分介绍了 Netscape公司在开发第一个版本的 JavaScript 时相应的动机和设计取舍。由于名称上的接近,JavaScript 经常被人们与 Java 编程语言相混淆,第一部分解释了 JavaScript 语言的命名过程、两种语言在设想中的联系,以及实际所发生的情况。对于这种语言最初的特性,
以及这些特性背后的设计决策,本部分也进行了概述。第一部分还追溯了 JavaScript 诞生后的最初几年在 Netscape 和其他公司的早期演化过程。
Web 的基石之一,就是它所基于的非专有的开放技术 。任何人都能创建一个网页,将其托管在来自不同厂商的各式 Web 服务器上,使其供不同浏览器访问。一份通用的规范有利于保证各个独立实现之间的互操作性。在 JavaScript 诞生之初,人们就意识到它需要某种形式的标准规范。仅在该语言发布的第一年,Web 开发者就已经遇到了 Netscape 的 JavaScript 与微软的逆向工程实现之间的互操作性问题。1996 年,JavaScript 的标准化进程在 Ecma 国际标准化组织的主持下启动。1997 年,Ecma 以“ECMAScript”的名义发布了该语言的第一份正式标准规范。到 1999 年年底,Ecma 又发布了两份修订版和增强版规范,它们主要基于 Netscape 对 JavaScript 的改动。
第二部分“创建标准”探讨了 JavaScript 的标准化工作。包括标准化进程是如何启动的、规范是如何创建的、谁为这项工作做出了贡献,以及如何做决策。
到 2000 年,JavaScript 在 Web 上获得了广泛的应用。但此时 Netscape 公司正迅速衰落,Eich 也已转战其他项目。要由谁来引领 JavaScript 未来的进化呢?由于缺少企业或个人形式的“终身仁慈独裁者” 2 ,因此演化 JavaScript 的责任就落在了 ECMAScript 标准委员会的身上。职责的交接并不顺利,在长达十年的时间里,ECMAScript 标准委员会试图找到自己的语言发展道路。委员会在这期间经历了错误的开始、标准化进程的中断,以及在错误方向上的投入。与此同时,JavaScript 的实际使用量正迅速增长,用户通常会使用实现所提供的特殊语言进行扩展。这导致出现了大量依赖 JavaScript 但又未受维护的网页,并暴露了新的互操作性问题。Web 开发者开始创建复杂的客户端 JavaScript Web 应用,这也需要标准化的新增语言特性来支持。
第三部分“改革失败”讲述了修订语言时的失败尝试、标准委员会内部的动荡,以及这种动荡最终是如何解决的。
2008 年,标准委员会恢复了正常运作,着手制定一份适度加强后的标准版本,这版标准于 2009 年发布。有了这一成功经验,标准委员会终于能承担起在保持兼容的基础上推进 JavaScript 语言现代化的任务了。在历时 7 年的过程中,委员会大幅提高了语言规范性,其成果被称为 ECMAScript 2015。这是 JavaScript 持续发展的基础。在完成 2015 年的发布后,委员会再次修改了流程,以便实现更快的增量发布,现在每年都会定期完成修订。
第四部分“继往开来”讲述了在创建 2009 版和 2015 版 ECMAScript 标准时所涉及的人员和流程。本部分涵盖了这两个版本的目标,以及它们是如何满足 JavaScript 社区不断演化的需求的。这一部分介绍了每个版本中对语言做出的重大基础性改变,以及为语言添加的重要的新特性。
本书中的原始材料力求使用当时的原始文件。幸运的是,这类文件现存甚多。本书作者确保只通过参考资料中的网址即可自由而方便地在网上查阅几乎所有的原始文件。原始文件中还补充了一些直接参与故事的人们的访谈和交流内容。两位作者都是本书所涉及的许多事件的重要参与者,他们的回忆与第三方信息提供者的回忆均以类似的方式
进行了处理。
JavaScript 二十年来的完整故事很长,本书也是如此。其中涉及数百项不同的事件,以及几十个组织和个人。附录 A ~附录 E 可以帮助读者了解这些细节。附录 A 和附录 B提供了带有注释的人员名单,以及故事中所出现的组织。附录 C 是一份术语词汇表,其中定义的术语要么为 JavaScript 所特有,要么可能与 2020 年的计算机业界常见用法不同,
要么含义可能发生变化,或对读者来说显得陌生。本书中首次使用的英文术语词汇通常使用加粗斜体字。附录 D 列出了读者会遇到的缩略语。附录 E 包含 4 份详细的事件时间表,对应本书的 4 个部分。
名称、数字与缩略语
JavaScript 的世界可能是一个混乱的地方,其中看似相同的东西却往往有多种名称。当进一步进入标准化组织的世界时,这种情况就更加严重了。这些组织通常使用两三个字母的缩写和数字来标识他们的组织单位和工作产品。为了最大限度地减少这种混乱,我们将对这些名称和缩略语进行定义,并指定一些本书将遵循的约定。
“JavaScript”是一种编程语言的通用名称。它最初是由 Netscape 公司开发的用于网页的语言。但无论是在 Web 上还是在其他环境中,它的用途都已远远超出了这个范围。每天都有数以百万计的程序员来思考和谈论这种语言。JavaScript 编程语言与 Java 编程语言截然不同,在技术上也有很大的区别,但它们相似的名称却经常引起人们的混淆。
JavaScript ? 也是一个注册商标,最初由 Sun 公司注册。截至本书出版之日,此商标由 Oracle 公司持有。这个商标由 Sun 公司授权给了 Netscape 公司,后来又授权给了Mozilla 基金会。Netscape 和 Mozilla 使用诸如“JavaScript 1.4”这样的名称来描述其开发的语言实现的特定版本。一些语言的实现者为了避免可能出现的商标问题,会选择
使用其他名称。由于 JavaScript 的多种名称问题、商标问题及其易与 Java 混淆,许多现代用户、图书作者和工具实现者都将这种语言简称为“JS”。另外,“js”则是常用的 JavaScript 源代码的文件扩展名。在本书中,当我们宽泛地谈论这种语言及其在特定版本、宿主环境或语言实现之外的用法时,使用“JavaScript”这个不加限定的术语。
在为语言制定标准规范时,“JavaScript ”一词是被规避的。作为替代,规范中使用了“ECMAScript”这一名称。“JavaScript”和“ECMAScript”这两个名字在本质上是同一事物的不同名称。在本书中,当我们使用“ECMAScript”一词时,是指专门讨论由标准所定义的语言。
ECMAScript 名称中的“ECMA”部分来源于 Ecma 国际,这是一个总部设在瑞士的标准化组织。ECMAScript 标准就是在该组织的主持下制定的。“ECMA”最初是“欧洲计算机制造商协会”的首字母缩写,其最初的名称后来演变为 Ecma 国际。Ecma 国际组织已不再认为“ECMA”是一个缩写,目前只将“Ecma”中的“E”大写。但在过去的不同时期,
他们曾使用过将所有字母大写的名称,在 ECMAScript 开发初期就是如此。这也是语言名称以 5 个大写字母开头的原因。在本书中,当提到 Ecma 国际标准组织时,我们通常会使用“Ecma”这个词。
Ecma 开发了许多与计算机产业有关的标准。制定标准的实际工作由 Ecma 技术委员会(Tech Committee)负责,该委员会简称“TC”。当一个新的 Ecma TC 被创建时,会给它分配一个序列号作为唯一标识。TC39 就是为了标准化 JavaScript 而创建的 TC。一些Ecma TC 又被细分为不同的任务组(Task Group),缩写为“TG”,它们具备特定的职责。
从 2000 年到 2007 年,TC39 的职责扩大,覆盖到了除 JavaScript 之外的其他编程语言。
在此期间,维护 ECMAScript 的职责被分配给了 TC39-TG1。在本书中,我们使用“TG1”作为 TC39-TG1 的缩写。
Ecma 会为其 TC 撰写的每份不同的标准各分配一个编号,并为这些编号添加“ECMA-”前缀作为代号。ECMAScript 标准即被指定为“ECMA-262”。当一份标准被修订时,新版本会以相同编号后接一个版本号的形式来发布。例如,ECMAScript 标准第 3 个版本的正式名称是“ECMA-262 第 3 版”。在 TC39 内部以及范围更大的 JavaScript 社区内,
也出现了使用类似“ES3”形式的缩写作为官方版本名称缩写的惯例。这里的“ES”代表“ECMAScript”。下表列出了 1997—2016 年 ECMA-262 的各个版本及其在本书中所使用的缩写。
人们定义第 4 版标准的尝试历时近十年,其中主要包括两轮大体上互相独立的设计工作。
在本书中,术语“初版 ES4”和“新版 ES4”被用来特指其中的某一种1 ;而“ES4”则用在描述对创建第 4 版标准整体投入的语境中。
自第 6 版标准发布起,TC39 采用了以标准出版年份作为缩写的约定。因此,“ES6”和“ES2015”都是“ECMA-262 第 6 版”的非正式缩写。人们一般更倾向于使用“ES2015”,但“ES6”仍是第 6 版标准制定过程中最常用的缩写。TC39 成员还使用“Harmony”和“ES.next”作为第 6 版开发项目的代号。
本书使用了大量的行内代码片段来说明 JavaScript 中的概念。其中的一些代码段只对JavaScript/ECMAScript 的特定版本有效,其他代码段则描述了一些不属于该语言的特性。
对于那些无法在所有版本的 JavaScript/ECMAScript 中可用的代码段,本书中都加入了适当的标注。
注意事项
英文原书中包含附录 A~ 附录 Q。其中,附录 F 是标志着 JavaScript 正式诞生的公告,而附录 G ~附录 Q 则主要包括 JavaScript 演化过程中的文献记录,如会议纪要、提案示例、邮件列表记录、规范节选等。由于附录 G ~ 附录 Q 的性质更接近参考文献,故本书中并未包含此部分,有需要的读者可以在博文视点社区(www.broadview.com.cn)的本书页面中自行下载并查阅。
形如 Mosaic 的 加粗斜体英文词汇,可在附录 C 中找到相应的解释。
形如[1]的为参考文献,全书参考文献较多且绝大部分为超链接,因此将其作为本书附赠的电子资源提供给读者,以便于读者查阅,请读者在博文视点社区的本书页面中下载。

目录

第 1 篇 语言诞生
第 1 章 史前时代 ..................................................................................3
1.1 Brendan Eich 加入网景 ........................................................................4
1.2 Mocha 的故事 ......................................................................................5
第 2 章 JavaScript 1.0 与 1.1................................................................8
2.1 JavaScript 语法 ..................................................................................10
2.2 数据类型与表达式 .............................................................................11
2.3 对象 ...................................................................................................14
2.4 函数对象 ............................................................................................17
2.5 内置库 ...............................................................................................18
2.6 执行模型 ............................................................................................20
2.7 迷惑行为与 bug .................................................................................22
2.7.1 冗余声明 ...............................................................................22
2.7.2 隐式类型转换与 = = 运算符 ..................................................23
2.7.3 32 位算术 ..............................................................................23
2.7.4 this 关键字.............................................................................24
2.7.5 arguments 对象 ......................................................................24
2.7.6 对数值属性键的特殊处理 .....................................................25
2.7.7 原始值的属性 ........................................................................26
2.7.8 JavaScript 中的 HTML 注释 ..................................................26
xxiv | JavaScript二十年
第 3 章 微软 JScript ...........................................................................28
第 4 章 从 Mocha 到 SpiderMonkey ....................................................30
第 5 章 插曲 :风评被害 ......................................................................35
第 2 篇 创立标准
第 6 章 寻找场地 ................................................................................39
第 7 章 首次 TC39 会议 ......................................................................41
第 8 章 编写规范 ................................................................................45
第 9 章 命名标准 ................................................................................50
第 10 章 ISO 快速通道 .......................................................................52
第 11 章 定义 ECMAScript 3 ..............................................................53
第 12 章 插曲 :JavaScript 不需要 Java ..............................................63
12.1 布道师 .............................................................................................63
12.2 富互联网应用与 AJAX ....................................................................64
12.3 浏览器博弈论 ..................................................................................67
第 3 篇 改革失败
第 13 章 不满于成功 ...........................................................................71
第 14 章 对 ES4 的第一轮尝试 ............................................................72
第 15 章 另一条死路 ...........................................................................78
第 16 章 Flash 与 ActionScript ...........................................................80
目录 | xxv
第 17 章 对 ES4 的第二轮尝试 ............................................................82
17.1 重置 TC39-TG1 ...............................................................................82
17.2 重新设计 ES4 ..................................................................................83
17.3 阻力 .................................................................................................87
17.4 寻求和谐 ..........................................................................................93
第 18 章 插曲 :认真对待 JavaScript ................................................. 100
18.1 JavaScript 性能革命 .......................................................................100
18.2 CommonJS 和 Node.js ...................................................................101
18.3 成为浏览器通用运行时的 JavaScript.............................................103
第 4 篇 继往开来
第 19 章 开发 ES3.1/ES5 ................................................................. 109
19.1 ES5 技术设计 ................................................................................114
19.1.1 严格模式 ...........................................................................114
19.1.2 Getter、Setter 和对象元操作 .............................................116
19.1.3 对象的完整性与安全性特性 ..............................................122
19.1.4 活动对象(Activation Object)的移除 .............................125
19.1.5 其他 ES5 特性 ...................................................................126
19.2 实现与测试 ....................................................................................127
第 20 章 从 Harmony 到 ECMAScript 2015 ....................................... 130
20.1 开始投入 Harmony ........................................................................130
20.1.1 稻草人(Strawman)与目标 .............................................130
20.1.2 倡导者模型 ........................................................................132
20.1.3 选择特性集 ........................................................................132
20.1.4 开始编写规范 ....................................................................133
20.1.5 One JavaScript ...................................................................134
20.1.6 Brendan 的梦想 .................................................................135
20.2 重新打造规范 ................................................................................138
20.2.1 重组规范结构 ....................................................................139
20.2.2 新的术语 ...........................................................................140
20.2.3 新的语义种类 ....................................................................141
20.3 ES2015 语言特性 ...........................................................................142
20.3.1 Realms、Jobs、Proxies 和元对象编程(MOP) ................142
xxvi | JavaScript二十年
20.3.2 块级声明作用域 ................................................................147
20.3.3 类 .......................................................................................151
20.3.4 模块 ...................................................................................156
20.3.5 箭头函数 ...........................................................................159
20.3.6 其他特性 ...........................................................................161
20.3.7 延期和被放弃的特性 .........................................................162
20.4 Harmony 转译器 ............................................................................162
20.5 完成 ECMAScript 2015 .................................................................163
第 21 章 总结 ................................................................................... 166
致谢 ................................................................................................... 168
附录 A 登场人物 ............................................................................... 170
附录 B 登场组织 ............................................................................... 175
附录 C 术语表 .................................................................................. 177
附录 D 缩略语和首字母缩写词 .......................................................... 182
附录 E 时间线 .................................................................................. 184
附录 F 1995 年 12 月 4 日的 JavaScript 公告 ..................................... 200

读者评论

相关博文

  • 想听世界上最懂 JavaScript 的人和你讲JavaScript 吗?

    想听世界上最懂 JavaScript 的人和你讲JavaScript 吗?

    博文小编 2021-06-10

    本文作者《JavaScript 二十年》译者 王译锋 一门科学的历史,就是这门科学本身。 ——歌德 时至今日,JavaScript 对前端工程师的重要性已无需多言。甚至有些同学已经达到了通读语言标准,对 ECMA-262 规范熟...

    博文小编 2021-06-10
    512 0 0 0

相关图书

写给大忙人的现代JavaScript

(德国)HORSTMANN, CAY S. (作者) 浙江阿里巴巴聚橙技术发展有限公司 (译者)

本书是一本简明的现代 JavaScript 教程,不仅涵盖函数式编程、JS 语法、JS 库等基础性内容,还介绍了国际化、异步编程、标准模块系统、元编程等较为复杂...

¥109.00

JavaScript语言精髓与编程实践(第3版)

周爱民 (作者)

本书详细讲述JavaScript作为一种混合式语言的各方面特性,包括过程式、面向对象、函数式和动态语言特性等,在动态函数式语言特性方面有着尤为细致的讲述。本书主...

¥144.00

狼书(卷2):Node.js Web应用开发

桑世龙 (作者)

目前市面的nodejs书籍基于0.10的为多,而基于最新4.X的非常少,本书是唯一一本基于node.js 4.0以上版本的书。而Koa是下一代node web的...

¥69.30

狼书(卷1):更了不起的Node.js

狼叔 桑世龙 (作者)

Node.js开发简单,性能极好,一经发布便成了明星级项目。随着大前端领域的蓬勃发展,跨平台开发、API构建、Web应用开发等场景愈加常见,Node.js也成为...

¥55.30

Koa与Node.js开发实战

Node.js 10已经进入LTS时代!其应用场景已经从脚手架、辅助前端开发(如SSR、PWA等)扩展到API中间层、代理层及专业的后端开发。Node.js在企...

¥49.00

Vue.js快跑

Callum Macrae (作者) 刘腾辉 (译者)

本书是用Vue.js构建Web应用的全方位指南。作者运用细致入微的讲解方式带你领略Vue.js的独特魅力,致力于协助你从零开始基于Vue.js创建一个Web应用...

¥69.00