勘误表
Eloquent JavaScript

以下是本书第二版中已知的错误。有关第一版的勘误,请参见此页面。要报告此处未列出的问题,请给我发送电子邮件

标题后带有上标数字的问题仅存在于该数字表示的版本之前。例如,带有²的问题在第三次印刷中已修复。

引言

第 4 页(为什么语言很重要¹):句子“You can probably imagine how how tedious…”重复了单词“how”。

第 2 章

第 32 页(while 和 do 循环²):var name 示例在对话框取消时意外退出循环,因为浏览器有一个内置的全局变量 name,其值会隐式转换为字符串。

第 8 章

第 140 页(程序员错误):在第三段中,文本写着“though several functions”,应该写成“through several functions”。

第 9 章

第 157 页(重复模式的一部分³):页面顶部的段落声称 {,5} 等同于正则表达式中的 {0,5}。情况并非如此(您必须包含零)。

第 159 页(Date 类型¹):findDate 函数会产生错误的月份。传递给 new Date 的第二个参数应该是 Number(match[2]) - 1,减去 1 来弥补月份在此接口中从零开始的事实。

第 162 页(回溯²):正则表达式应该在 [\da-f] 组之后再加一个 + 符号,以匹配它所描述的匹配内容。该表达式的图表也缺少一个循环回到相应框的箭头。

第 10 章

第 185 页(加载缓慢的模块¹):在 define 的代码片段中,every 方法的第二次使用是不正确的。该调用应该是 myMod.onLoad.forEach

第 11 章

第 192 页(解析¹):示例 Egg 程序的括号分配不正确。第二行的一个右括号应该移到最后一行末尾。

第 12 章

第 209 页(网络²):在第三段中,我声称“URL”中的 U 代表“通用”,而实际上代表“统一”。

第 14 章

第 242 页(鼠标移动¹):示例使用 event.which 来检测鼠标按钮释放。这只在 Chrome 和 Safari 中有效。请参阅更新后的代码注释,了解更佳方法。

第 16 章

第 281 页(曲线¹):文本指的是 bezierCurve 方法。该方法实际上被称为 bezierCurveTo(如示例代码所示)。

第 282 页(曲线¹):在提到图片显示从圆形左侧到四分之一圆形左侧的一条线时,应该在两个地方都改为“右侧”。

第 17 章

第 312 页(总结¹):代码示例使用了 statusCode 属性。该属性不存在,因为实际的属性名为 status

第 18 章

第 316 页(字段²):示例底部 file 字段中的 checked 属性没有任何意义,不应该存在。

第 327 页(总结¹):“When the user has selected a field” 应该改为 “When the user has selected a file”。

第 21 章

第 377 页(长轮询支持³):在第二段中,changesSince 参数被错误地称为 changeSince(单数)。

习题提示

第 409 页(反转数组):页面底部附近的 for 循环写着 \textgreater{},应该写成 >