勘误表
以下是本书第三版中已知的错误。有关第一版的勘误表,请参见此页面。有关第二版的勘误表,请参见此页面。要报告此处未列出的问题,请给我发送电子邮件。
如果页码后面跟着序数,则该错误仅存在于该序数表示的印刷版中。例如,后面跟着“第一版”的错误在第二版印刷中已修复。
第二章
第 34 页(第一版)简洁地更新绑定:在写着 counter-
的地方,应该写成 counter--
。
第五章
第 91 页(第三版)可组合性:由于脚本数据集中最初的错误,此页上的计算结果与使用当前已修正数据的计算结果不同。现存脚本的平均年份应该为 1165,非现存脚本的平均年份应该为 204。
第六章
第 111 页(第二版)继承:在示例代码下面的第二段中,应该将“content
方法”改为“element
函数”。
第八章
第 134 页(第二版)错误传播:在该部分的第三段中,提到了一个名为 promptInteger
的函数。该函数实际上称为 promptNumber
,并且应该从句子中去掉“整数”一词(它也接受非整数)。
第十章
第 168 页(第一版)模块作为构建块:在“每个模块都需要它自己的私有作用域”中,应该写成“它自己的私有作用域”。
第十一章
第 189/190 页(第四版)网络很复杂:在定义 request
函数的代码下面的文本中,声称该函数将在四次尝试和一秒钟后放弃。实际上,它会在三次尝试后放弃,并且只持续三刻钟。
第十四章
第 231 页(第五版)遍历树:在代码示例下面,文本声称 for
/of
循环在 DOM 子节点列表上不起作用。但实际上,在当前的浏览器中(甚至在本书发布之时),它们是可以正常工作的。
第 234 页(第二版)创建节点:在代码中,“edition”被拼写为“editon”。
第十五章
第 255 页(第七版)鼠标移动:该页上的第二段声称可以使用余数运算符从 buttons
位掩码中分离出一个按钮,但这实际上并不起作用(还需要除法和向下取整,这对于本章来说过于深奥)。
第 258 页(第三版)加载事件:beforeunload
的描述声称你只需要从事件处理程序中返回一个字符串即可。实际上,对于使用 addEventListener
注册的处理程序,你需要调用 preventDefault
并设置 returnValue
属性才能获得离开警告行为。
第十六章
第 271 页(第八版)Actor:在页面底部附近,书中错误地使用了“相位”(正弦波的相位)一词,而应该说“周期”。
第 278 页(第八版)运动和碰撞:定义 touches
方法的代码无意中(虽然无害)使用 var
而不是 let
来定义变量。
第 285 页(第二版)暂停游戏:文本指的是 arrow
绑定,而应该说 arrowKeys
。
第十九章
第 336 页(第五版)状态:文本中提到了 fillColor
属性,而应该写成 fillStyle
。
第二十章
第 367 页(第十版)文件服务器:谈到“对请求的输出流”的部分应该改为“来自请求的流”。
第 369 页(第一版)目录创建:MKCOL
代表“创建集合”,而不是书中所称的“创建列”。
第二十一章
第 373 页(第三版)HTTP 接口:在示例 JSON 代码片段的末尾有一个多余的右花括号。
练习提示
第 414 页(第三版)模块化机器人:dijkstrajs
包名拼写错误,应该是 dijkstajs
。