猜你喜欢
JavaScript编程精解(第3版)

JavaScript编程精解(第3版)

书籍作者:[美] 马尔奇·哈弗贝克(Marijn Haverbeke) 著,卢涛 李颖 译 ISBN:9787111648369
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4341
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

JavaScript几乎可以说是所有现代Web应用程序的核心,无论是社交应用程序,还是时下流行的浏览器游戏。虽说学习和使用JavaScript的成本并不高,但是它却是一种灵活且复杂的编程语言,你可以用它来构建功能全面且复杂的应用程序。

本书的第3版进行了全面的更新和修订,以反映JavaScript和Web浏览器的当前进展,涵盖类表示法、箭头函数、迭代器、异步函数、模板字符串和块作用域等功能的全新内容。而且还增加大量的新练习来测试你的技能,让你保持在正轨上。

本书深入剖析了JavaScript编程语言的内部细节,并阐述了编写优雅高效代码的方法。作者Marijn Haverbeke从示例代码开始讲解,逐步实现了完整的项目,与此同时作者还提供了一系列习题供读者练习,你可以从中学习并了解如何编写自己的程序。

首先,你将学习JavaScript语言的基本结构,以及控制结构、函数和数据结构。然后在进入Web浏览器编程之前,你将学习错误处理与bug修复模块化和异步编程。在构建诸如浏览器游戏、简单的编程语言和绘画程序的项目时,你将学习如何:

●了解编程的基本要素,包括语法、控制和数据

●使用面向对象和函数式编程技术组织和阐明代码

●编写浏览器脚本并开发基本的Web应用程序

●高效地使用DOM与浏览器进行交互

●利用Node.js构建服务器和实用程序


作者简介

马尔奇·哈弗贝克(Marijn Haverbeke)

全球知名JavaScript程序员,通晓多种编程语言,在Web开发方面积累了丰富的经验,在JavaScript领域颇有影响力。

他研究过各种软件系统,从数据库到编译器再到编辑器均有涉及。此外,他创建并维护着多个流行的开源项目,如CodeMirror编辑器和Tern类型推导引擎等。


编辑推荐
适读人群 :本书适合JavaScript零基础入门新手阅读。

本书从JavaScript的基本语言特性入手,提纲挈领地介绍JavaScript的主要功能和特色,包括基本结构、函数、数据结构、高阶函数、错误处理、正则表达式、模块、异步编程、浏览器文档对象模型、事件处理、绘图、HTTP表单、Node等,可以帮助你循序渐进地掌握基本的编程概念、技术和思想。而且书中提供5个项目实战章节,涉及路径查找、自制编程语言、平台交互游戏、绘图工具和动态网站,可以帮助你快速上手实际的项目。此外,本书还介绍了JavaScript性能优化的方法论、思路和工具,以帮助我们开发高效的程序。

●新版本:

针对JavaScript语言ES6 规范的新功能更新,助你了解JavaScript语言的新发展,编写出更强大的代码

●注重实战:

通过投递机器人、编程语言、平台交互游戏、像素绘图程序、动态网站5个实战章节,教你快速上手实际的项目

●学练结合:

每章配有示例程序和习题和答案,帮你进行知识回顾

●线上资源:

本书配套功能丰富的支持网站,可实际执行内嵌的代码段,及时查看结果(微信关注华章计算机,回复64836获取)



前言

【前言】

本书讲述如何指挥计算机开展工作。如今计算机与螺丝刀一样普遍,但它们比螺丝刀复杂得多,让它们完成你想做的工作并不容易。

如果是一个常见的、易于理解的任务,例如显示你的电子邮件或充当计算器,你可以打开相应的应用程序并开始工作。但对于独一无二或开放式的任务,可能没有现成的应用程序可用。

这就是编程的用武之地。编程是构建程序的行为,而程序是一组告诉计算机该做什么的精确指令。因为计算机是头脑简单、死板的,编程基本上是单调乏味和令人沮丧的。

幸运的是,如果你能克服这些,甚至可能享受愚笨的机器可以处理的严谨思维,那么编程可以带来丰厚的回报。它允许你在几秒钟内完成手工永远无法完成的操作。这是一种让你的计算机工具做以前无法做的事情的方法。它提供了抽象思维的精彩练习。

大多数编程活动都是用编程语言完成的。编程语言是用于指导计算机的人造语言。有趣的是,我们发现与计算机通信的最有效方式是从人类彼此通信的方式中借鉴大量的内容。与人类语言一样,计算机语言允许以新的方式组合单词和短语,从而可以表达新的概念。

基于语言的界面,例如20世纪80年代和90年代的BASIC和DOS提示符,在某种程度上曾经是与计算机交互的主要方法。它们在很大程度上被图形界面取代,图形界面更容易学习,但提供的自由度更低。如果你知道计算机语言的藏身之处,就仍然可以把它们用起来。每种现代Web浏览器都内置了一种这样的语言——JavaScript,因此它几乎可以在每台设备上使用。

本书将努力让你熟悉这种语言,以便用它来做有用和有趣的事情。

【关于编程】

除了解释JavaScript之外,我还将介绍编程的基本原理。事实证明,编程很难。基本规则简单明了,但基于这些规则构建的程序往往变得非常复杂,从而无法说明其规则和复杂性。编程在某种程度上构建了自己的迷宫,你可能会迷失在里面。

有时读这本书会让人非常沮丧。如果你不熟悉编程,那么会有很多新内容需要消化。其次,大部分时候都需要你具备其他相关知识才能理解这些内容的组合。

你需要付出必要的努力。当你努力学习这本书时,不要对自己的能力有任何怀疑。你很优秀——只需要坚持下去。休息一下,重读一些章节,并确保阅读并理解示例程序和练习。学习是一项艰苦的工作,但你学到的一切都属于自己,并且会使后续的学习变得更容易。

当行动变得无利可图时,收集信息;

当信息变得无利可图时,睡觉。

—Ursula K. Le Guin,《黑暗的左手》

程序这个词有多重含义。它是由程序员键入的一段文本,是使计算机完成任务的指挥力量,它也是计算机内存中的数据,它还控制在同一内存上执行的操作。将程序与我们熟悉的对象进行类比往往不尽如人意。有一种表面上比较恰当的比喻,即把程序视作包含许多零件的机器,为了使整台机器正常运转,我们必须考虑如何将这些零件相互连接起来,并实现整体的运转。

计算机是一台承载这些无形机器的物理机器。计算机本身只能做简单直接的事情。它们如此有用的原因是它们做这些事情的速度极快。程序可以巧妙地结合大量简单的动作来完成非常复杂的事情。

程序是思想的结晶。构造它不需要成本,它也没有重量,通过打字我们很容易把它创造出来。

但是,如果不加注意,程序的大小和复杂性将会失去控制,甚至会使构造它的人无法理解。保持程序受控是编程中需要考虑的主要问题。当一个程序正常工作时,它是优美的。编程艺术是控制复杂性的技能。出色的程序都是简明的,它们的复杂性都不太高。

一些程序员认为管理这种复杂性的最好办法是只在程序中使用一小部分易于理解的技术。他们制定了严格的规则(“最佳实践”)来规定程序应该具有的形式,并小心地把它们限定在很小的安全范围内。

这不仅无聊,而且效果不佳。新问题通常需要新的解决方案。编程的历史不长,并且仍在迅速发展,而且它的变化足以为不同的方法提供空间。在程序设计中有很多可怕的错误,应该继续大胆犯错以加深你的理解。编写好程序的感觉是在编程实践中培养起来的,而不是从一系列规则中学到的。


【什么是JavaScript】

JavaScript于1995年面世,它是在Netscape Navigator浏览器中向网页添加程序的一种方式。所有其他主要的图形Web浏览器都已采用了此语言。它使现代Web应用程序成为可能——你可以直接与这种应用程序交互,而不必为每个动作重新加载页面。JavaScript也用于更传统的网站,以提供各种形式的交互性和智能。

值得注意的是,JavaScript与名为Java的编程语言几乎无关。采用相似名称是出自营销考虑,而不是合理的判断。当JavaScript出现时,Java语言正在大规模推广并且越来越受欢迎。有人认为尝试搭乘这一成功语言的顺风车是一个好主意。现在我们已经无法摆脱这个名字了。

JavaScript语言在Netscape之外得到采用之后,人们编写了一个标准文档来描述它的工作方式,以便声称支持JavaScript的各种软件实际上都在讨论同一种语言。这被称为ECMAScript标准,得名于标准化它的ECMA国际组织。在实践中,ECMAScript和JavaScript这两个术语可以互换使用,它们是同一种语言的两个名称。

有人会说JavaScript有许多糟糕之处。其中很多都是确实存在的。当我第一次被要求用JavaScript编写程序时,我很快就开始鄙视它了。它几乎可以接受我输入的任何代码,但它解释这个代码的方式却与我的原意完全不同。这与我当时没有弄清楚“我在做什么”有很大关系,但这里有一个真正的问题:JavaScript在它允许的内容上过于自由。这种设计背后的初衷是,它将使初学者更容易使用JavaScript进行编程。实际上,因为系统不会向你指出问题,所以更难以在程序中发现问题。

不过,这种灵活性也有其优点。它为许多技术留下了空间,这些技术在更严格的语言中是不可能实现的,正如你将看到的(例如在第10章中),它的灵活性可以用来克服一些JavaScript的缺点。在正确学习JavaScript语言并花一段时间使用它后,我真的变得喜欢它了。

JavaScript有好几个版本。ECMAScript第3版是JavaScript在2000年到2010年逐渐占据主导地位时得到广泛支持的版本。在此期间,ECMA正在雄心勃勃地开发第4版,此版本计划对该语言进行一些彻底的改进和扩展。以这种激进的方式改变一种活生生的、广泛使用的语言,在现实中非常困难,所以ECMA在2008年放弃开发第4版,这导致改动远不那么激进的第5版。第5版于2009年发布,只进行了一些无争议的改进。然后在2015年发布了第6版,这是一个重大更新,其中包括原计划加到第4版中的一些想法。从那时起,我们每年都有新的小更新。

语言不断发展这一事实意味着浏览器必须不断跟进,如果你使用的是较旧的浏览器,则可能无法支持所有功能。语言设计人员谨慎地不做任何可能破坏现有程序的更改,因此新浏览器仍然可以运行旧程序。在本书中,我使用的是2017版JavaScript。

Web浏览器不是唯一使用JavaScript的平台。一些数据库(如MongoDB和CouchDB)也使用JavaScript作为脚本和查询语言。用于桌面和服务器编程的几个平台为在浏览器之外编写JavaScript提供了环境,其中最值得注意的是Node.js项目(详见第20章)。


【代码以及对它的处理方式】

代码是组成程序的文本。本书中的大多数章节都包含很多代码。我相信阅读代码和编写代码是学习编程不可或缺的部分。不要只是粗略浏览一下这些例子,务必仔细阅读并理解它们。这么做起初可能很慢而且费脑子,但我保证你会很快掌握它。习题也是如此。在你真正编写出有效的解决方案之前,不要认为已经明白了它们。

我建议你尝试使用实际的JavaScript解释器来检查习题答案。利用这种方式,你可以立即获得你的代码是否有效的反馈,并且,我希望你会尝试进行实验,并且不只限于这些习题。

运行本书中的示例代码并进行实验的最简单方法是在https://eloquentjavascript.net上的本书在线版本中查找。在那里,你可以单击任何代码示例来编辑和运行它,并查看它产生的输出。要进行练习,请访问https://eloquentjavascript.net/code,它为每个编码习题都提供启动代码,并允许你查看解决方案。

如果你想在本书的网站之外运行书中定义的程序,则需要注意一些事项。许多示例都独立存在,应该适用于任何JavaScript环境。但是后面章节中的代码通常是针对特定环境(浏览器或Node.js)编写的,并且只能在那种环境中运行。此外,许多章节定义了规模更大的程序,出现在它们中的代码片段彼此依赖或依赖于外部文件。网站上的沙盒提供了Zip文件的链接,其中包含运行给定章节代码所需的所有脚本和数据文件。

【本书概述】

本书包含三个部分。前十二章讨论了JavaScript语言。接下来的七章介绍Web浏览器以及JavaScript用于浏览器编程的方式。最后,用两章专门介绍Node.js,这是另一种用于编写JavaScript的环境。

在整本书中,有五个项目实战章节,它们描述了大型的示例程序,让你体验实际的编程。按照出现顺序,我们将建立一个投递机器人、一种编程语言、一个平台游戏、一个像素绘图程序和一个动态网站。

本书语言部分的前四章介绍JavaScript语言的基本结构。它们引入了控制结构(如while)、函数(编写自己的构件)和数据结构。在这之后,你将能够编写基本的程序。接下来,第5章和第6章介绍了使用函数和对象技术编写更抽象的代码并控制复杂性。

在第一个项目实战章节之后,本书的语言部分继续介绍错误处理和错误修复、正则表达式(用于处理文本的重要工具)、模块化(针对复杂性的另一种防御)和异步编程(处理花时间的事件)等内容。第二个项目实战章节总结了本书的第一部分。

第二部分为第13~19章,描述了浏览器JavaScript可以访问的工具。你将学会在屏幕上显示内容(第14章和第17章)、回应用户输入(第15章),以及通过网络进行通信(第18章)。本部分也包括两个项目实战章节。

第三部分为第20~22章。第20章描述了Node.js,第21章使用此工具构建了一个小型网站。最后,第22章描述了在优化JavaScript程序以提高速度时需要注意的一些事项。


【译者序】

JavaScript在网络时代诞生,从为静态网页添加各种炫目的特效,到现在几乎所有在线的交互网站和小程序,都大量使用了JavaScript。我们几乎每天都通过浏览器和各种应用与它打交道,它已成为我们日常工作、生活不可或缺的组成部分。它的这种无所不在,也便于我们在各种环境中进行学习。

JavaScript的演进适应了网络的发展,标准化组织定期为它添加新功能,并且得益于大量的投资和引擎开发人员的努力,它的执行性能也在不断地提高。使用JavaScript不但可以编写在浏览器上执行的客户端程序,而且可以编写在网站后台作为服务器执行的程序。人们已利用JavaScript编写了许多流行的工具框架,如jQuery、Angular、Express等。由它定义的JSON是轻量级的文本数据交换格式,许多数据库软件也支持JavaScript和JSON,如MongoDB、CouchDB、MySQL等。JavaScript已经成为当下最流行的“全栈”开发语言。

JavaScript内容庞大,一本书不可能面面俱到地介绍所有内容。本书提纲挈领地介绍了语言的主要功能和特色,包括基本结构、函数、数据结构、高阶函数、错误处理、正则表达式、模块、异步编程、浏览器文档对象模型、事件处理、绘图、HTTP表单、Node等,读者可以通过学习这些内容循序渐进地掌握基本的编程概念、技术和思想。为了读者能够较快地上手实际的项目,本书安排了5个实战章节,涉及路径查找、自制编程语言、平台交互游戏、绘图工具和动态网站等方面,这些章节教会我们如何利用掌握的知识实现各种功能,并组成一个完整的项目。最后一章介绍了JavaScript性能优化的方法论、思路和工具,以帮助我们开发高效的程序。

本书与时俱进,已更新到第3版,这一版包含了JavaScript语言ES6 规范的最新功能,比如绑定、常量、类、promise等。学习了本书,就能了解该语言的最新发展,编写出更强大的代码。

本书有一个功能丰富的支持网站(网址请见“前言”介绍),上面有可免费阅读的章节,可以实际执行内嵌的代码段,允许即时查看结果,还有供执行示例程序和习题的沙盒。这些都是作者精心设计的,网站本身就是对JavaScript的绝好展示。我的儿子卢令一就被第16章的熔岩游戏所吸引,当他了解到这样有趣的游戏只要几百行代码就能编写出来时,对编程也产生了浓厚的兴趣。

感谢华章公司刘锋编辑的信任,把这本书交给我翻译。感谢我的同事们,在工作中教给我许多IT知识。感谢我的家人,他们的辛勤劳动,使我能专心地投入本书的翻译。

卢 涛

2019年11月 


目录

【第一部分】 语言

●第1章 值、类型和运算符 2

1.1 值 2

1.2 数字 3

1.3 字符串 4

1.4 一元运算符 6

1.5 布尔值 6

1.5.1 比较 6

1.5.2 逻辑运算符 7

1.6 空值 8

1.7 自动类型转换 8

1.8 小结 10

●第2章 程序结构 11

2.1 表达式和语句 11

2.2 绑定 12

2.3 绑定名称 13

2.4 环境 13

2.5 函数 14

2.6 console.log函数 14

2.7 返回值 15

2.8 控制流 15

2.9 条件执行 15

2.10 while和do循环 17

2.11 缩进代码 18

2.12 for循环 19

2.13 跳出循环 19

2.14 简洁地更新绑定 20

2.15 使用switch调度值 20

2.16 首字母大写 21

2.17 注释 22

2.18 小结 22

2.19 习题 22

●第3章 函数 24

3.1 定义一个函数 24

3.2 绑定和作用域 25

3.3 作为值的函数 27

3.4 声明表示法 27

3.5 箭头函数 28

3.6 调用栈 28

3.7 可选参数 29

3.8 闭包 30

3.9 递归 31

3.10 函数的增长方式 34

3.11 函数和副作用 36

3.12 小结 36

3.13 习题 37

●第4章 数据结构:对象和数组 38

4.1 松鼠人 38

4.2 数据集 39

4.3 属性 39

4.4 方法 40

4.5 对象 41

4.6 可变性 43

4.7 松鼠人的日志 44

4.8 计算相关性 45

4.9 数组循环 46

4.10 最终分析 47

4.11 其他数组方法 48

4.12 字符串及其属性 50

4.13 剩余参数 51

4.14 Math对象 52

4.15 解构 53

4.16 JSON 54

4.17 小结 54

4.18 习题 55

●第5章 高阶函数 57

5.1 抽象化 58

5.2 提取重复的内容 58

5.3 高阶函数 59

5.4 语言字符集数据集 60

5.5 过滤数组 61

5.6 用map转换 62

5.7 用reduce汇总 62

5.8 组合性 63

5.9 字符串和字符代码 64

5.10 文本识别 66

5.11 小结 67

5.12 习题 67

●第6章 对象的秘密 69

6.1 封装 69

6.2 方法 70

6.3 原型 71

6.4 类 72

6.5 类表示法 73

6.6 覆盖派生属性 74

6.7 映射 75

6.8 多态性 76

6.9 符号 76

6.10 迭代器接口 78

6.11 读取器、设置器和静态 79

6.12 继承 81

6.13 instanceof运算符 82

6.14 小结 82

6.15 习题 83

●第7章 项目:机器人 85

7.1 村庄Meadowf?ield 85

7.2 任务 86

7.3 持久化数据 88

7.4 模拟 89

7.5 邮车的路线 90

7.6 寻找路线 91

7.7 习题 92

●第8章 缺陷和错误 94

8.1 语言 94

8.2 严格模式 95

8.3 类型 96

8.4 测试 96

8.5 调试 97

8.6 错误传播 98

8.7 异常 99

8.8 异常后清理 100

8.9 选择性捕获 102

8.10 断言 103

8.11 小结 104

8.12 习题 104

●第9章 正则表达式 106

9.1 创建正则表达式 106

9.2 匹配测试 107

9.3 字符集 107

9.4 模式的重复部分 108

9.5 对子表达式分组 109

9.6 匹配和组 109

9.7 Date类 110

9.8 单词和字符串边界 111

9.9 选择模式 112

9.10 匹配机制 112

9.11 回溯 113

9.12 replace方法 114

9.13 贪心 116

9.14 动态创建RegExp对象 117

9.15 search方法 117

9.16 lastIndex属性 118

9.17 解析INI文件 119

9.18 国际字符 121

9.19 小结 122

9.20 习题 123

●第10章 模块 124

10.1 模块作为构件 124

10.2 包 125

10.3 简易模块 126

10.4 将数据作为代码执行 127

10.5 CommonJS 127

10.6 ECMAScript模块 129

10.7 构建和捆绑 130

10.8 模块设计 131

10.9 小结 132

10.10 习题 133

●第11章 异步编程 134

11.1 异步 134

11.2 乌鸦技术 135

11.3 回调 136

11.4 promise 138

11.5 失败 139

11.6 构建网络很困难 140

11.7 promise集合 142

11.8 网络泛洪 142

11.9 消息路由 143

11.10 异步函数 145

11.11 生成器 147

11.12 事件循环 148

11.13 异步bug 149

11.14 小结 150

11.15 习题 150

●第12章 项目:编程语言 152

12.1 解析 152

12.2 求解器 156

12.3 特殊形式 157

12.4 环境 158

12.5 函数 159

12.6 编译 160

12.7 作弊 161

12.8 习题 161

【第二部分】 浏览器

●第13章 浏览器中的JavaScript 164

13.1 网络和互联网 164

13.2 Web 165

13.3 HTML 166

13.4 HTML和JavaScript 168

13.5 沙盒 168

13.6 兼容性和浏览器大战 169

●第14章 文档对象模型 170

14.1 文档结构 170

14.2 树 171

14.3 标准 172

14.4 通过树结构 173

14.5 寻找元素 174

14.6 更改文档 175

14.7 创建节点 175

14.8 属性 177

14.9 布局 177

14.10 样式 179

14.11 层叠样式 180

14.12 查询选择器 181

14.13 定位和动画 182

14.14 小结 184

14.15 习题 184

●第15章 处理事件 186

15.1 事件处理程序 186

15.2 事件和DOM节点 187

15.3 事件对象 188

15.4 传播 188

15.5 默认操作 189

15.6 按键事件 190

15.7 指针事件 191

15.8 滚动事件 194

15.9 焦点事件 195

15.10 加载事件 196

15.11 事件和事件循环 196

15.12 计时器 197

15.13 限频 198

15.14 小结 199

15.15 习题 199

●第16章 项目:平台游戏 201

16.1 游戏 201

16.2 技术 202

16.3 关卡 202

16.4 读取关卡 203

16.5 演员 204

16.6 封装是一种负担 207

16.7 绘图 207

16.8 动作和碰撞 211

16.9 演员的更新 214

16.10 跟踪按键 215

16.11 运行游戏 216

16.12 习题 218

●第17章 在画布上绘图 219

17.1 SVG 219

17.2 画布元素 220

17.3 线和面 221

17.4 路径 222

17.5 曲线 223

17.6 绘制饼图 225

17.7 文本 226

17.8 图片 227

17.9 转换 228

17.10 存储和清除转换 230

17.11 回到游戏 231

17.12 选择图形界面 236

17.13 小结 236

17.14 习题 237

●第18章 HTTP和表单 239

18.1 协议 239

18.2 浏览器和HTTP 241

18.3 fetch 242

18.4 HTTP沙盒 243

18.5 欣赏HTTP 243

18.6 安全性和HTTPS 244

18.7 表单域 244

18.8 焦点 246

18.9 禁用域 247

18.10 表单整体 247

18.11 文本域 248

18.12 复选框和单选按钮 249

18.13 选择域 250

18.14 文件域 251

18.15 在客户端存储数据 252

18.16 小结 254

18.17 习题 255

●第19章 项目:像素绘图程序 257

19.1 组件 257

19.2 状态 259

19.3 DOM的建立 260

19.4 画布 261

19.5 应用程序 263

19.6 绘图工具 264

19.7 保存和加载 267

19.8 撤销历史记录 269

19.9 让我们画吧 270

19.10 为什么这么难 271

19.11 习题 271

【第三部分】 Node

●第20章 Node.js 276

20.1 背景 276

20.2 node命令 277

20.3 模块 277

20.4 使用NPM安装 278

20.5 文件系统模块 280

20.6 HTTP模块 281

20.7 流 283

20.8 文件服务器 284

20.9 小结 288

20.10 习题 289

●第21章 项目:技能分享网站 290

21.1 设计 290

21.2 长轮询 291

21.3 HTTP接口 292

21.4 服务器 293

21.5 客户端 299

21.6 习题 304

●第22章 JavaScript性能 305

22.1 分阶段编译 305

22.2 图的布局 306

22.3 定义图 307

22.4 力导向布局 308

22.5 避免工作 310

22.6 分析器 312

22.7 函数内联 313

22.8 减少垃圾 314

22.9 垃圾收集 314

22.10 动态类型 315

22.11 小结 316

22.12 习题 317

附录 部分习题解答提示 318


短评

可以。。。。。。。。。。

2020-04-12 16:15:39

JavaScript编程精解(第3版)的书评

这本书最形象的就是在某几章贯穿始终的例子了。一方面随着例子讲解代码,另一方面也让读者对各个不同的知识点的学习更有持久力。 那个生态系统的例子,很可以挖一挖。 当然了,在看某一章的时候最好找一段完整的时间,一气呵成读完,是最有效果的。

2011-05-19 17:14:49

还是 CodeMirror 的作者。 这本书是免费的:http://eloquentjavascript.net/ 上面还可以下载到 PDF 版本(以及适合手机看得小 PDF 版本)。 Code sandbox and exercise solutions Errata for the paper book This book as a single PDF file (& small version ...

2016-04-02 13:25:32

原作还不错,只是这翻译。。。才翻了十几页就发现两个错误了,虽然都是细节问题,但是真心觉得一个名头那么大的译者这些都应该注意到的: P11 首行“Counter也是从1开始”,原文是“The counter could also start at 1”,所以翻译成“Counter也可以从1开始”更合适 P13 “无...

2012-11-26 21:04:33

主要讲的是javascript编程,后面很少的提到了网页前端。这本书很薄,但是很贵有没有!里面讲的知识质量还是很高的,像是精炼的笔记一样,不过觉得不太适合初学者,尤其是对函数式编程不了解的同学,中文版译者好像把原版的代码精简了,把函数式编程发挥到了极致,原版里代码函...

2014-01-22 13:22:44

原文:http://eloquentjavascript.net/3rd_edition/ 译文:https://github.com/wizardforcel/eloquent-js-3e-zh ==========================================================================================================================================================

2018-02-11 12:01:06

此书内容比较精炼,示例代码比较多,新手很容易走失在丛丛代码中,因此刚接触JavaScript的朋友还是先找本基础的书入门吧。 此外,书中有些代码有点小问题,勘误表都可以在译者的博客上找到:http://www.cnblogs.com/TomXu/archive/2012/10/21/2732968.html。

2014-08-12 22:46:43

您好!我是 Eloquent JavaScript 读者。最近作者计划再版,以众筹的形式筹集资金,以决定再版的深度和投入的精力。现在筹集了大约 8k 欧元,进入平台期,这个钱只够重写一部分的。请大家多支持。作者筹款主页在这 https://eloquentjavascript.net/2nd_edition/ 请核实并考虑!...

2013-10-02 13:32:38

我从第一章介绍看到第十章模块,从第十一章异步开始,我准备切换主要参考书,而把这边书作为辅助参考了。 优点 此书前九章可以看作是第一部分,主要聚焦于 JavaScript (JS) 的基础,包括变量声明、数据类型、函数、循环语句、条件语句、错误调试、正则表达式、面向对象编程等。...

2019-11-06 11:09:14

这篇书评目前只涉及第六章,因为我在这里卡了蛮久的(大概2周) 第六章讲了 JS 对象的一些相关内容。作者在第四章已经提到了 Object。 对于之前没有 JS 经验的人,我认为这一章比较有价值的地方在于,它至少讲到了创建对象的不同办法,比如用 constructor function, 用 class ...

2019-10-13 12:24:02

Regular expressions are a sharp tool with an awkward handle. They simplify some tasks tremendously but can quickly become unmanageable when applied to complex problems. -- chapter 9, Eloquent JavaScript 看到的大实话,真感动! At the time of writing, there a...

2018-12-02 16:39:49

标签
JavaScript
产品特色