搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
JavaScript 二十年(博文视点出品)
0.00     定价 ¥ 79.00
泸西县图书馆
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787121408687
  • 作      者:
    Allen,Wirfs-Brock,Brendan,Eich
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2021-05-01
收藏
编辑推荐

√ 语言诞生、标准创立、改革失败、既往开来四大华彩乐章,真实且深刻地记录了JS发展关键节点的每一个人每一种选择每一次牺牲,用语言缔造者的独到视角、敏锐观察和深刻理解,将这门伟大语言的峥嵘与妙趣一一呈现。


√ 跟随当事人穿梭于 JavaScript 二十年发展史之间,从十天发明 JavaScript 的历史故事再到 ES1 标准化的合纵连横,再到 ES4 的失意、ES5 的妥协与 ES6 的成功,本书将为你解答种种“语言为什么要设计成这样”的问题。


√ 以下中外前端风云人物撰文力荐此书:周爱民|Hax|Douglas(老道)|justjavac|死月|月影|李玉北|张云龙|顾轶灵|黄轶|于航|沈毅|黄玄|工业聚|小爝|一丝|题叶|染陌|Jasin Yip|LucasHC|小帅|寒雁|太狼|敖天羽|xcatliu|Himself65。


√ 本书可谓由JavaScript发明者与ES6规范首席作者联袂出品的语言演化史研究,不仅解读了语言标准化背后技术与商业上的种种竞争与合作,JavaScript诞生以来历次语言设计变革的思想根源,均可在其中找到答案。


展开
作者简介


Allen Wirfs-Brock是编程语言及实现方面的专家,在开发编译器、虚拟机、编程环境和完整的计算机系统方面有着丰富的经验。他是面向对象编程技术兴起时期的技术创新者和业务领导者,并深度参与了 Smalltalk编程语言的开发过程。在2009-2015年,他是ECMAScript语言规范的项目编辑。


Brendan Eich是Brave Software和Basic Attention Token的联合创始人兼CEO。他曾担任Mozilla公司的CTO和CEO。在此之前,他是Mozilla项目和基金会的联合创始人。在Mozilla工作期间,他协助推出了屡获殊荣的Firefox网络浏览器。Brendan Eich也是JavaScript的发明者,这是互联网上使用最广泛的编程语言之一。


展开
内容介绍

本书主要讲述了从 1995 年到 2015 年这20年间,JavaScript在创建、设计和演变方面所经历的过程。全书分为4个部分,每个部分都涵盖了 JavaScript 发展和演化的一个主要阶段,其中不仅涉及语言发展的技术细节,还介绍了人们和组织如何在竞争与合作中逐渐塑造 JavaScript 语言的故事。

本书适合JavaScript初学者和开发人员阅读和使用,也适合非JavaScript从业者翻阅。


展开
精彩书评

长期以来,JavaScript一直是世界上极易被误解的编程语言之一。本书终于纠正了外界对JavaScript历史的诸多误解。

——《JavaScript 语言精粹》作者 Douglas Crockford

本书由 JavaScript 之父 Brendan Eich执笔,介绍了只用十天开发出的 JavaScript 是如何一步一步成为流行的编程语言之一的。如果你是一名前端开发者,这本书绝对不容错过。

——Deno 核心贡献者 迷渡(justjavac)

JavaScript 已经有二十多年历史了,回望过去,它从当初毛毛糙糙的“小东西”变成了现在如同变形金刚一样的编程语言。本书帮助我们回忆了 JavaScript 的历史,甚至讲了一些我们从不知道的故事,可谓是一本让人读到“停不下来”的好书。

——Node.js Core Collaborator,《Node.js:来一打 C++ 扩展》作者 死月

作为 JavaScript程序员、前端工程师,我也算完整经历了JavaScript这段20年的历史。JavaScript互联网的发展紧密结合深入地改变了人们的生活,因此,我们每个人都是这段历史的获益者。本书以故事的形式将JavaScript精彩的历史呈现在我们面前,帮助我们更好地了解JavaScript并参与其未来发展。让我们一起把JavaScript变得更好!

——字节跳动技术中台前端负责人 月影

随着互联网技术的蓬勃发展,Web 应用可以说是无处不在,JavaScript 在这个发展过程中扮演了非常关键的角色。如今,基于JavaScript开发的应用已不限于 Web 应用的场景,其在 Serverless、IoT 等领域都有不错的表现。本书系统阐述了 JavaScript 在过去20年间的发展历史,以及在社区、商业公司和标准组织的推动下,JavaScript如何从最初的一个“玩具”发展到可以支持大型复杂应用的现代编程语言。通过回顾这段历史,我们可以更加坚信JavaScript的未来有无限的可能性。

——字节跳动前端基础工程团队负责人 李玉北

不知不觉,JavaScript 已走过 20 年的历史,从一个用 10 天时间匆匆设计出的简陋语言,发展到如今使用广泛的编程语言,其中离奇曲折的故事数不胜数。如今的前端工程师在使用 JS 构建各种终端应用时,应该做到“知其然,亦知其所以然”,了解 JS 的历史,有助于工程师掌握 JS 背后的语言设计和发展演变逻辑。这不仅是一本优秀的“考古书”,更是一本不可多得的前端必备知识手册。

——巧子科技创始人 张云龙

Web 技术的崛起深刻影响着我们的生活,作为其核心编程语言,JavaScript在历史上拥有着极为特殊的地位。这门具有独特魅力的语言是如何诞生的,经历了怎样的发展、困境和繁荣,相信JavaScript 语言规范的主要编辑 Allen Wirfs-Brock 和JavaScript创始人 Brendan Eich 是最合适的讲述者。这部译作拉近了中国JavaScript开发者与这段历史的距离,让我们对这门熟悉又陌生的语言有了新的认识。面对历史,心潮澎湃,希望本书能带动更多的读者参与到JavaScript语言规范的演进过程中来,为开放的 Web 平台注入新的能量。

——百度资深研发工程师,W3C 中文兴趣组联合主席 顾轶灵

本书不仅讲述了 JavaScript 的诞生历史,还重点讲解了 ES 技术的发展历程,以故事叙述的手法介绍了 JavaScript 技术从创建标准、设计到实现的演进过程。本书的语言风格轻松有趣,有助于读者更加深刻地理解和学习JavaScript语言。此外,书中还加入了大量的参考文献和详细的代码注释,可以说,这是一本不可多得的优秀图书。

——Zoom 前端架构师,开源项目 better-scroll 作者 黄轶

时至今日,在 TC39 会议上,我们仍然能够经常看到Mark Miller 和 Waldemar Horwat 等人的身影。不仅如此,浏览器实现方、各公司的 TC39 成员代表,乃至提案者个人,也都会以各自的方式和立场在这场会议上展开“battle”,并为 JavaScript 注入更多的新鲜血液。通过阅读本书,你能够了解到 JavaScript 背后的“辛酸”发展史、Allen Wirfs-Brock与Brendan Eich等人在整个 JavaScript 发展历史中所承担的重要角色、微软与雅虎是如何“阻碍” ES4 标准发展的,以及曾经的 ES3.1 是如何变为 ES5 标准的,等等。相信在读过本书之后,你会对 JavaScript拥有全新的看法——它不再是枯燥的符号,而是有血有肉的编程语言。

——PayPal Staff Engineer,TC39 Member,《深入浅出 WebAssembly》作者 于航

还记得2009 年刚读大学时,我接触了谷歌新推出的 O3D ,当时没想到 JS 能在浏览器里画出游戏中复杂的 3D 场景,也没想到后来前端技术发展如此之快,更没想到自己在后来9年的工作中大多在用 JS 做 2D 和 3D 渲染。这本书在满足我的“技术八卦欲”的同时,也让我再次回顾了曾亲身经历的JavaScript技术变迁。我深感当初选择JavaScript是一件非常幸运的事。

——Apache EChartsPMC 成员,ClayGL作者 沈毅

JavaScript 常常被戏称为“一种偶然成功的玩具语言”,而实际上,它不仅出身名门,并且成长在聚光灯下。纵观历史,有资格被标准化的编程语言寥寥无几,JavaScript因此而成为多方角力的战场,也有幸同时得到业界与学界先驱的亲传。时至今日,我们甚至难以判断是JavaScript背负了太多妥协,还是这些妥协成就了JavaScript。以史为鉴,或许你会有自己的答案。

——Facebook 软件工程师(编程语言、JS 引擎、前端基础设施) 黄玄

JavaScript——世界上流行的编程语言之一,从诞生之初便饱受争议。在从事前端工作多年后,我对它依旧爱恨交加。感谢这本书,揭示了JavaScript的来源。阅读本书,或许你能和我一样,与 JavaScript 和解。

——前端技术博主,开源项目作者 古映杰(工业聚)

初学 JS 时,我就发现没有一本完整介绍 JS 历史的书,而本书现在弥补了这一空白。它完整地讲述了JS 二十年的前世今生及其标准化之路。了解历史,才能理解未来,我强烈推荐所有前端技术人员都读一读这本书。

——新浪移动,前端基础架构组负责人,Darukjs 框架作者 付强(小爝)

本书是一本难得一见的JavaScript“史记”。本书译者以其丰富的技术阅历和生动有趣的文字,带我们领略了 JavaScript 的前世今生。阅读此书,我们能更好地理解 JavaScript 中某个 API 为什么如此设计,以及未来它会走向何方,仿佛有一个声音在耳边回荡:有人创造技术,有人毁灭技术,在技术的“革命”道路上,我们该何去何从?

——iconfont 开发者,PostCSS 官方团队成员 一丝

在各类编程语言涌现、编译器技术演进的数十年间,JavaScript背负着维护Web向后兼容的重担,但它依然在不断前进——改进语法语义、优化引擎,并取得了显著的效果,这实在是一项“壮举”。

——ClojureScript 爱好者 题叶

Web凭借其强大的生态以及开放的标准成为当下非常火热的技术,这背后离不开 JavaScript语言的支持。本书将带领读者了解JavaScript语言的诞生、标准化及发展过程,让读者对JavaScript语言有一个更全面的认识。我诚挚推荐广大JavaScript开发者阅读本书。

——阿里巴巴淘系前端架构团队成员,《剖析 Vue.js 内部运行机制》作者 染陌

JavaScript早已远超最初设计时的应用范围,然而对于它的演变历史,我们却往往只停留在前辈讲述和道听途说的故事中。本书将JavaScript的历史梳理清楚,也是我目前看过的唯一一本讲述编程语言演变进程的“历史书”,值得细品!

——知乎 JavaScript 话题优秀回答者,美团及阿里巴巴高级前端工程师 叶俊星(Jasin Yip)

本书译者不仅真实还原了原著的内容,更凭借其深厚的功力升华了内容,堪称常读常新。在阅读了部分章节后,我毫不犹豫地将本书推荐给每一位前端开发者。

——两部前端畅销书作者,知乎前端优秀回答者 侯策(LucasHC)

在很多开发者眼里,JavaScript不是一门严肃的编程语言,但正是那些看起来不那么严肃的特性使其成为了极具影响力的编程语言之一,帮助开发者不断重塑万维网。本书告诉我们JavaScript的成功并非偶然,而是业界优秀技术人士的智慧碰撞出来的结果。本书不仅让我们了解了JavaScript语言的历史和演进过程,更重要的是使我们深刻地认识到了标准和规范的重要性,并启发我们如何参与到标准和规范的制定中。

——稿定科技 CTO 姚东旭(小帅)

我的第一本编程入门图书是《JavaScript 语言精粹》,令我印象深刻的是,这本书反复倡导代码编写者应用“取其精华,去其糟粕”的理念规避JavaScript的问题,而《JavaScript二十年》再一次让我看到这个理念在标准委员会中落地,展示了技术理想与责任碰撞的过程。

——流行开源项目作者,稿定设计创意网页生产力工具负责人 糖饼

我看过王译锋学弟的很多文章,他的技术造诣和文字功底都非常好,也很有想法。我也曾想过翻译这本书,后来发现他已经做得很好了!这是一本前端必读书,强烈推荐!

——Fundebug 创始人,阿里巴巴前端技术专家 寒雁

跟随本书回到JavaScript诞生的那个年代,以当下的视角重新审视JavaScript的变迁历史,你会发现 JavaScript的流行并不是偶然。在了解了JavaScript语言中那些令人摸不着头脑的特性和行为的诞生过程后,你会不会跟我一样会心一笑?

——《Learning TypeScript中文版》译者,napi-rs 作者 龙逸楠(太狼)

现在市场上充斥着各类JavaScript“从入门到精通”实用工具书和教程,但是真正介绍JavaScript 如何演进的图书却很少。作为很少见的“考古”图书,本书带我们从另一个角度了解JS这种“前端霸主”语言。当我们真正走进 JavaScript,会在痛并快乐着的同时,做到“知其然,亦其所以然”。

——全栈工程师,bilibili 国际版运营管理平台负责人 敖天羽

互联网的爆发使JavaScript成为了流行的编程语言之一但其发展经历了一段很长的低谷期——直到ES6的诞生,JavaScript才有了更先进的标准和更稳定的迭代。让我们跟随本书一起重新体验一下JavaScript波澜壮阔的发展之路吧!

——《TypeScript 入门》作者,开源项目 Pagic 作者 刘易成(xcatliu)

本书既是一本JavaScript标准的历史书,也是一本JavaScript教程,很多 JavaScript特有的问题都可以在这里找到答案。无论你是新人还是老手,读后都能有所收获。

——Node.js & Hexo.js Member Himself65

展开
目录

第 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


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录

点击获取验证码
登录