本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了JavaScript开发者必须掌握的前端开发技术,涉及JavaScript的基础特性和高级特性。书中详尽讨论了JavaScript的各个方面,从JavaScript的起源开始,逐步讲解到新出现的技术,其中重点介绍ECMAScript和DOM标准。在此基础上,接下来的各章揭示了JavaScript的基本概念,包括类、期约、迭代器、代理,等等。另外,书中深入探讨了客户端检测、事件、动画、表单、错误处理及JSON。本书同时也介绍了近几年来涌现的重要新规范,包括Fetch API、模块、工作者线程、服务线程以及大量新API。 马特.弗里斯比(Matt Frisbie) 知名前端技术专家,拥有十余年Web开发经验。曾是Google工程师,参与开发Adsense和AMP平台等重要产品。他也是美国外卖巨头DoorDash技术团队的工程师。目前担任Gosellout公司的CTO。毕业于伊利诺伊大学厄巴纳-尚佩恩分校(UIUC)计算机科学专业。 【译者简介】 李松峰 360前端开发资深专家、前端TC委员、W3C AC代表,任职于“奇舞团”,也是360 Web字体服务“奇字库”作者。 第 1章 什么是JavaScript 11.1 简短的历史回顾 11.2 JavaScript实现 21.3 JavaScript版本 91.4 小结 10第 2章 HTML中的JavaScript 112.1 script元素 112.2 行内代码与外部文件 182.3 文档模式 182.4 noscript元素 192.5 小结 20第3章 语言基础 213.1 语法 213.2 关键字与保留字 233.3 变量 243.4 数据类型 303.5 操作符 563.6 语句 733.7 函数 803.8 小结 82第4章 变量、作用域与内存 834.1 原始值与引用值 834.2 执行上下文与作用域 874.3 垃圾回收 944.4 小结 101第5章 基本引用类型 1035.1 Date 1035.2 RegExp 1075.3 原始值包装类型 1135.4 单例内置对象 1285.5 小结 135第6章 集合引用类型 1366.1 Object 1366.2 Array 1386.3 定型数组 1556.4 Map 1636.5 WeakMap 1686.6 Set 1736.7 WeakSet 1786.8 迭代与扩展操作 1806.9 小结 182第7章 迭代器与生成器 1837.1 理解迭代 1837.2 迭代器模式 1847.3 生成器 1927.4 小结 204第8章 对象、类与面向对象编程 2058.1 理解对象 2058.2 创建对象 2208.3 继承 2388.4 类 2498.5 小结 265第9章 代理与反射 2669.1 代理基础 2669.2 代理捕获器与反射方法 2749.3 代理模式 2839.4 小结 286第 10章 函数 28710.1 箭头函数 28810.2 函数名 28910.3 理解参数 29010.4 没有重载 29210.5 默认参数值 29310.6 参数扩展与收集 29510.7 函数声明与函数表达式 29710.8 函数作为值 29710.9 函数内部 29910.10 函数属性与方法 30210.11 函数表达式 30410.12 递归 30610.13 尾调用优化 30710.14 闭包 30910.15 立即调用的函数表达式 31410.16 私有变量 31610.17 小结 321第 11章 期约与异步函数 32211.1 异步编程 32211.2 期约 32511.3 异步函数 34711.4 小结 360第 12章 BOM 36112.1 window对象 36112.2 location对象 37212.3 navigator对象 37512.4 screen对象 37912.5 history对象 37912.6 小结 381第 13章 客户端检测 38213.1 能力检测 38213.2 用户代理检测 38613.3 软件与硬件检测 39413.4 小结 400第 14章 DOM 40114.1 节点层级 40114.2 DOM编程 42614.3 MutationObserver接口 43214.4 小结 444第 15章 DOM扩展 44515.1 Selectors API 44515.2 元素遍历 44715.3 HTML5 44815.4 专有扩展 45615.5 小结 459第 16章 DOM2和DOM3 46016.1 DOM的演进 46016.2 样式 46716.3 遍历 47616.4 范围 48116.5 小结 489第 17章 事件 49017.1 事件流 49017.2 事件处理程序 49317.3 事件对象 49917.4 事件类型 50517.5 内存与性能 54017.6 模拟事件 54317.7 小结 548第 18章 动画与Canvas图形 54918.1 使用requestAnimationFrame 54918.2 基本的画布功能 55218.3 2D绘图上下文 55318.4 WebGL 56918.5 小结 579第 19章 表单脚本 58119.1 表单基础 58119.2 文本框编程 58719.3 选择框编程 59719.4 表单序列化 60119.5 富文本编辑 60319.6 小结 608第 20章 JavaScript API 60920.1 Atomics与SharedArrayBuffer 60920.2 跨上下文消息 61620.3 Encoding API 61720.4 File API与Blob API 62220.5 媒体元素 62720.6 原生拖放 63120.7 Notifications API 63520.8 Page Visibility API 63620.9 Streams API 63720.10 计时API 64420.11 Web组件 64820.12 Web Cryptography API 66320.13 小结 674第 21章 错误处理与调试 67521.1 浏览器错误报告 67521.2 错误处理 67621.3 调试技术 68821.4 旧版IE的常见错误 69121.5 小结 693第 22章 处理XML 69422.1 浏览器对XML DOM的支持 69422.2 浏览器对XPath的支持 69
阅读更多