JavaScript高级程序设计 第4版 [美] 马特·弗里斯比 著,李松峰 译 人民邮电出版社

  编辑推荐

  适读人群 :本书适合有一定编程经验的Web应用程序开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。

  1.中文版累计销量320 000+册,JavaScript“红宝书”全新升级;

  2.涵盖ECMAScript 2019,全面深入,入门和进阶俱佳;

  3.新版全面升级,延续了上一版的框架和格局,删减了已经过时的内容,在此基础上又翔实地增补了ES2015到ES2019的全新内容;

  4.多个章节配有视频课二维码,扫码即可观看;结合视频讲解+配套编程环境,助你轻松掌握JavaScript新特性与前端实践;

  5.附赠《JavaScript高级程序设计第4版》阅读路线图,划分新手必读与进阶必读;

  6.提供源代码,可直接在线运行随书代码。

  本书是JavaScript技术经典名著,自2006年第1版中文版面世时起,至今培养了几代前端技术人员,累计销量超过32万册,被技术人员昵称为JavaScript“红宝书”。第4版涵盖ECMAScript 2019,不仅新增了5章内容,还对其余章节进行了大幅度的增补和修订。

  本书第4版继承了之前版本全面深入、贴近实战的特点,在详细讲解JavaScript语言的核心之后,条分缕析地为读者展示了现有规范及实现为Web应用程序提供的各种支持和特性,既可作为入门指南,也可作为技术进阶的指导和参考。

  本书主要内容包括:

  基础内容——JavaScript的历史;与HTML的关联;基本类型、引用类型和内置引用类型

  进阶操作——迭代器与生成器;代理与反射;对象、类与面向对象编程;函数;期约(promise)与异步编程;BOM、DOM以及客户端检测

  使用JavaScript进行交互——事件、表单元素、用WebGL创建动态图形、JavaScript API、调试等

  JavaScript中的数据操作——XML、JSON,以及离线时客户端如何存储数据(Web Storage和IndexedDB)

  JavaScript设计模式和实践策略——工作者线程、服务线程,以及企业级开发中JavaScript编码的实践策略

  JavaScript前沿——新的ES6模块;ECMAScript 2018~2019修订内容;新的库、框架和工具等

  内容简介

  本书是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字体服务“奇字库”作者。

  精彩书评

  "这本书就不用我多介绍了,它是和'犀牛书'并列的'红宝书',当年我学JavaScript的案头参考书之一。李松峰老师是优秀的技术译者,也是奇舞团资深的前端工程师和新人导师,我相信这本书经过松峰老师的翻译,一定能在JavaScript学习之路上让你获益良多。"

  --奇舞团前团长 月影

  "我认为《JavaScript高级程序设计》这本书Z大的特点就是它是体系化的前端教程,它是可以拿来做前端开发的教材的。JavaScript这几年出了不少好书,但多数还是在讲单点,也有些书虽然比较全面,但是组织上不成体系,像手册、文档一样,没法拿来学。这本《JavaScript高级程序设计》就不一样,它很适合拿来系统学习。"

  --程劭非(winter)

  "《JavaScript高级程序设计》第1版出版时,我刚刚参加工作。我从这本书学到了前端领域的基础知识,并由此走进了前端开发的大门。感谢它一直陪伴我早期成长的岁月。后来我把这本书推荐给团队的每一位新人,作为他们的参考书。'勿在浮沙筑高台',希望他们通过这本书打好基础、走得更远。相信《JavaScript高级程序设计》的第4版依旧是前端工程师案头的经典参考书。"

  --美团点评交通事业部终端研发团队负责人 潘魏增

  "学习前端,绕不开的3本书:'犀牛书''蝴蝶书',以及这本'红宝书'。对我而言,'犀牛书'太厚碎,'蝴蝶书'太薄精,都不是那么容易阅读;而这本'红宝书'刚刚好,对初学者十分友好。"

  --《深入浅出Node.js》作者 朴灵

  目录

  第 1章 什么是JavaScript 1

  1.1 简短的历史回顾 1

  1.2 JavaScript实现 2

  1.3 JavaScript版本 9

  1.4 小结 10

  第 2章 HTML中的JavaScript 11

  2.1 script元素 11

  2.2 行内代码与外部文件 18

  2.3 文档模式 18

  2.4 noscript元素 19

  2.5 小结 20

  第3章 语言基础 21

  3.1 语法 21

  3.2 关键字与保留字 23

  3.3 变量 24

  3.4 数据类型 30

  3.5 操作符 56

  3.6 语句 73

  3.7 函数 80

  3.8 小结 82

  第4章 变量、作用域与内存 83

  4.1 原始值与引用值 83

  4.2 执行上下文与作用域 87

  4.3 垃圾回收 94

  4.4 小结 101

  第5章 基本引用类型 103

  5.1 Date 103

  5.2 RegExp 107

  5.3 原始值包装类型 113

  5.4 单例内置对象 128

  5.5 小结 135

  第6章 集合引用类型 136

  6.1 Object 136

  6.2 Array 138

  6.3 定型数组 155

  6.4 Map 163

  6.5 WeakMap 168

  6.6 Set 173

  6.7 WeakSet 178

  6.8 迭代与扩展操作 180

  6.9 小结 182

  第7章 迭代器与生成器 183

  7.1 理解迭代 183

  7.2 迭代器模式 184

  7.3 生成器 192

  7.4 小结 204

  第8章 对象、类与面向对象编程 205

  8.1 理解对象 205

  8.2 创建对象 220

  8.3 继承 238

  8.4 类 249

  8.5 小结 265

  第9章 代理与反射 266

  9.1 代理基础 266

  9.2 代理捕获器与反射方法 274

  9.3 代理模式 283

  9.4 小结 286

  第 10章 函数 287

  10.1 箭头函数 288

  10.2 函数名 289

  10.3 理解参数 290

  10.4 没有重载 292

  10.5 默认参数值 293

  10.6 参数扩展与收集 295

  10.7 函数声明与函数表达式 297

  10.8 函数作为值 297

  10.9 函数内部 299

  10.10 函数属性与方法 302

  10.11 函数表达式 304

  10.12 递归 306

  10.13 尾调用优化 307

  10.14 闭包 309

  10.15 立即调用的函数表达式 314

  10.16 私有变量 316

  10.17 小结 321

  第 11章 期约与异步函数 322

  11.1 异步编程 322

  11.2 期约 325

  11.3 异步函数 347

  11.4 小结 360

  第 12章 BOM 361

  12.1 window对象 361

  12.2 location对象 372

  12.3 navigator对象 375

  12.4 screen对象 379

  12.5 history对象 379

  12.6 小结 381

  第 13章 客户端检测 382

  13.1 能力检测 382

  13.2 用户代理检测 386

  13.3 软件与硬件检测 394

  13.4 小结 400

  第 14章 DOM 401

  14.1 节点层级 401

  14.2 DOM编程 426

  14.3 MutationObserver接口 432

  14.4 小结 444

  第 15章 DOM扩展 445

  15.1 Selectors API 445

  15.2 元素遍历 447

  15.3 HTML5 448

  15.4 专有扩展 456

  15.5 小结 459

  第 16章 DOM2和DOM3 460

  16.1 DOM的演进 460

  16.2 样式 467

  16.3 遍历 476

  16.4 范围 481

  16.5 小结 489

  第 17章 事件 490

  17.1 事件流 490

  17.2 事件处理程序 493

  17.3 事件对象 499

  17.4 事件类型 505

  17.5 内存与性能 540

  17.6 模拟事件 543

  17.7 小结 548

  第 18章 动画与Canvas图形 549

  18.1 使用requestAnimationFrame 549

  18.2 基本的画布功能 552

  18.3 2D绘图上下文 553

  18.4 WebGL 569

  18.5 小结 579

  第 19章 表单脚本 581

  19.1 表单基础 581

  19.2 文本框编程 587

  19.3 选择框编程 597

  19.4 表单序列化 601

  19.5 富文本编辑 603

  19.6 小结 608

  第 20章 JavaScript API 609

  20.1 Atomics与SharedArrayBuffer 609

  20.2 跨上下文消息 616

  20.3 Encoding API 617

  20.4 File API与Blob API 622

  20.5 媒体元素 627

  20.6 原生拖放 631

  20.7 Notifications API 635

  20.8 Page Visibility API 636

  20.9 Streams API 637

  20.10 计时API 644

  20.11 Web组件 648

  20.12 Web Cryptography API 663

  20.13 小结 674

  第 21章 错误处理与调试 675

  21.1 浏览器错误报告 675

  21.2 错误处理 676

  21.3 调试技术 688

  21.4 旧版IE的常见错误 691

  21.5 小结 693

  第 22章 处理XML 694

  22.1 浏览器对XML DOM的支持 694

  22.2 浏览器对XPath的支持 696

  22.3 浏览器对XSLT的支持 700

  22.4 小结 702

  第 23章 JSON 703

  23.1 语法 703

  23.2 解析与序列化 706

  23.4 小结 710

  第 24章 网络请求与远程资源 711

  24.1 XMLHttpRequest对象 711

  24.2 进度事件 718

  24.3 跨源资源共享 719

  24.4 替代性跨源技术 721

  24.5 Fetch API 722

  24.6 Beacon API 747

  24.7 Web Socket 747

  24.8 安全 749

  24.9 小结 750

  第 25章 客户端存储 751

  25.1 cookie 751

  25.2 Web Storage 759

  25.3 IndexedDB 762

  25.4 小结 771

  第 26章 模块 772

  26.1 理解模块模式 772

  26.2 凑合的模块系统 776

  26.3 使用ES6之前的模块加载器 779

  26.4 使用ES6模块 783

  26.5 小结 790

  第 27章 工作者线程 791

  27.1 工作者线程简介 791

  27.2 专用工作者线程 793

  27.3 共享工作者线程 813

  27.4 服务工作者线程 817

  27.5 小结 841

  第 28章 最佳实践 842

  28.1 可维护性 842

  28.2 性能 851

  28.3 部署 861

  28.4 小结 864

  附录A ES2018和ES2019(图灵社区下载)

  附录B 严格模式(图灵社区下载)

  附录C JavaScript库和框架(图灵社区下载)

  附录D JavaScript工具(图灵社区下载)