万本电子书0元读

万本电子书0元读

顶部广告

JavaScript高级程序设计(第4版)电子书

1.中文版累计销量320 000 册,JavaScript“红宝书”全新升级; 2.涵盖ECMAScript 2019,全面深,门和阶俱佳; 3.新版全面升级,延续了上一版的框架和格局,删减了已经过时的内容,在此基础上又翔实地增补了ES2015到ES2019的全新内容; 4.多个章节配有视频课二维码,扫码即可观看;结合视频讲解 配套编程环境,助你轻松掌握JavaScript新特性与前端实践; 5.附赠《JavaScript高级程序设计第4版》阅读路线图,划分新手与阶;

售       价:¥

纸质售价:¥64.50购买纸书

3531人正在读 | 2人评论 7.4

作       者:(美)马特·弗里斯比(Matt Frisbie)

出  版  社:人民邮电出版社有限公司

出版时间:2020-09-01

字       数:115.4万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深地介绍了JavaScript发者必须掌握的前端发技术,涉及JavaScript的基础特性和高级特性。书中详尽讨论了JavaScript的各个方面,从JavaScript的起源始,逐步讲解到新出现的技术,其中重介绍ECMAScript和DOM标准。在此基础上,下来的各章揭示了JavaScript的基本概念,包括类、期约、迭代器、代理,等等。另外,书中深探讨了客户端检测、事件、动画、表单、错误处理及JSON。本书同时也介绍了近几年来涌现的重要新规范,包括Fetch API、模块、工作者线程、服务线程以及大量新API。<br/>【推荐语】<br/>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的案头参考书之一。李松峰老师是优秀的技术译者,也是奇舞团资深的前端工程师和新人导师,我相信这本书经过松峰老师的翻译,一定能在JavaScript学习之路上让你获益良多。” ——奇舞团前团长 月影 “我认为《JavaScript高级程序设计》这本书*的特就是它是体系化的前端教程,它是可以拿来做前端发的教材的。JavaScript这几年出了不少好书,但多数还是在讲单,也有些书虽然比较全面,但是组织上不成体系,像手册、文档一样,没法拿来学。这本《JavaScript高级程序设计》就不一样,它很适合拿来系统学习。” ——程劭非(winter) “《JavaScript高级程序设计》第1版出版时,我刚刚参加工作。我从这本书学到了前端领域的基础知识,并由此走了前端发的大门。感谢它一直陪伴我早期成长的岁月。后来我把这本书推荐给团队的每一位新人,作为他们的参<br/>【作者】<br/>马特·弗里斯比(Matt Frisbie) 知名前端技术专家,拥有十余年Web发经验。曾是Google工程师,参与发Adsense和AMP平台等重要产品。他也是美国外卖巨头DoorDash技术团队的工程师。目前担任Gosellout公司的CTO。毕业于伊利诺伊大学厄巴纳-尚佩恩分校(UIUC)计算机科学专业。 【译者简介】 李松峰 360前端发资深专家、前端TC委员、W3C AC代表,任职于“奇舞团”,也是360 Web字体服务“奇字库”作者。<br/>
目录展开

版权声明

献词

译者序

前言

读者对象

本书内容

组织结构

预备条件

电子书及附录

致谢

第 1 章 什么是JavaScript

1.1 简短的历史回顾

1.2 JavaScript实现

1.2.1 ECMAScript

1.2.2 DOM

1.2.3 BOM

1.3 JavaScript版本

1.4 小结

第 2 章 HTML中的JavaScript

2.1 <script>元素

2.1.1 标签占位符

2.1.2 推迟执行脚本

2.1.3 异步执行脚本

2.1.4 动态加载脚本

2.1.5 XHTML中的变化

2.1.6 废弃的语法

2.2 行内代码与外部文件

2.3 文档模式

2.4 <noscript>元素

2.5 小结

第 3 章 语言基础

3.1 语法

3.1.1 区分大小写

3.1.2 标识符

3.1.3 注释

3.1.4 严格模式

3.1.5 语句

3.2 关键字与保留字

3.3 变量

3.3.1 var关键字

3.3.2 let声明

3.3.3 const声明

3.3.4 声明风格及最佳实践

3.4 数据类型

3.4.1 typeof操作符

3.4.2 Undefined类型

3.4.3 Null类型

3.4.4 Boolean类型

3.4.5 Number类型

3.4.6 String类型

3.4.7 Symbol类型

3.4.8 Object类型

3.5 操作符

3.5.1 一元操作符

3.5.2 位操作符

3.5.3 布尔操作符

3.5.4 乘性操作符

3.5.5 指数操作符

3.5.6 加性操作符

3.5.7 关系操作符

3.5.8 相等操作符

3.5.9 条件操作符

3.5.10 赋值操作符

3.5.11 逗号操作符

3.6 语句

3.6.1 if语句

3.6.2 do-while语句

3.6.3 while语句

3.6.4 for语句

3.6.5 for-in语句

3.6.6 for-of语句

3.6.7 标签语句

3.6.8 break和continue语句

3.6.9 with语句

3.6.10 switch语句

3.7 函数

3.8 小结

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

4.1 原始值与引用值

4.1.1 动态属性

4.1.2 复制值

4.1.3 传递参数

4.1.4 确定类型

4.2 执行上下文与作用域

4.2.1 作用域链增强

4.2.2 变量声明

4.3 垃圾回收

4.3.1 标记清理

4.3.2 引用计数

4.3.3 性能

4.3.4 内存管理

4.4 小结

第 5 章 基本引用类型

5.1 Date

5.1.1 继承的方法

5.1.2 日期格式化方法

5.1.3 日期/时间组件方法

5.2 RegExp

5.2.1 RegExp实例属性

5.2.2 RegExp实例方法

5.2.3 RegExp构造函数属性

5.2.4 模式局限

5.3 原始值包装类型

5.3.1 Boolean

5.3.2 Number

5.3.3 String

5.4 单例内置对象

5.4.1 Global

5.4.2 Math

5.5 小结

第 6 章 集合引用类型

6.1 Object

6.2 Array

6.2.1 创建数组

6.2.2 数组空位

6.2.3 数组索引

6.2.4 检测数组

6.2.5 迭代器方法

6.2.6 复制和填充方法

6.2.7 转换方法

6.2.8 栈方法

6.2.9 队列方法

6.2.10 排序方法

6.2.11 操作方法

6.2.12 搜索和位置方法

6.2.13 迭代方法

6.2.14 归并方法

6.3 定型数组

6.3.1 历史

6.3.2 ArrayBuffer

6.3.3 DataView

6.3.4 定型数组

6.4 Map

6.4.1 基本API

6.4.2 顺序与迭代

6.4.3 选择Object还是Map

6.5 WeakMap

6.5.1 基本API

6.5.2 弱键

6.5.3 不可迭代键

6.5.4 使用弱映射

6.6 Set

6.6.1 基本API

6.6.2 顺序与迭代

6.6.3 定义正式集合操作

6.7 WeakSet

6.7.1 基本API

6.7.2 弱值

6.7.3 不可迭代值

6.7.4 使用弱集合

6.8 迭代与扩展操作

6.9 小结

第 7 章 迭代器与生成器

7.1 理解迭代

7.2 迭代器模式

7.2.1 可迭代协议

7.2.2 迭代器协议

7.2.3 自定义迭代器

7.2.4 提前终止迭代器

7.3 生成器

7.3.1 生成器基础

7.3.2 通过yield中断执行

7.3.3 生成器作为默认迭代器

7.3.4 提前终止生成器

7.4 小结

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

8.1 理解对象

8.1.1 属性的类型

8.1.2 定义多个属性

8.1.3 读取属性的特性

8.1.4 合并对象

8.1.5 对象标识及相等判定

8.1.6 增强的对象语法

8.1.7 对象解构

8.2 创建对象

8.2.1 概述

8.2.2 工厂模式

8.2.3 构造函数模式

8.2.4 原型模式

8.2.5 对象迭代

8.3 继承

8.3.1 原型链

8.3.2 盗用构造函数

8.3.3 组合继承

8.3.4 原型式继承

8.3.5 寄生式继承

8.3.6 寄生式组合继承

8.4 类

8.4.1 类定义

8.4.2 类构造函数

8.4.3 实例、原型和类成员

8.4.4 继承

8.5 小结

第 9 章 代理与反射

9.1 代理基础

9.1.1 创建空代理

9.1.2 定义捕获器

9.1.3 捕获器参数和反射API

9.1.4 捕获器不变式

9.1.5 可撤销代理

9.1.6 实用反射API

9.1.7 代理另一个代理

9.1.8 代理的问题与不足

9.2 代理捕获器与反射方法

9.2.1 get()

9.2.2 set()

9.2.3 has()

9.2.4 defineProperty()

9.2.5 getOwnPropertyDescriptor()

9.2.6 deleteProperty()

9.2.7 ownKeys()

9.2.8 getPrototypeOf()

9.2.9 setPrototypeOf()

9.2.10 isExtensible()

9.2.11 preventExtensions()

9.2.12 apply()

9.2.13 construct()

9.3 代理模式

9.3.1 跟踪属性访问

9.3.2 隐藏属性

9.3.3 属性验证

9.3.4 函数与构造函数参数验证

9.3.5 数据绑定与可观察对象

9.4 小结

第 10 章 函数

10.1 箭头函数

10.2 函数名

10.3 理解参数

箭头函数中的参数

10.4 没有重载

10.5 默认参数值

默认参数作用域与暂时性死区

10.6 参数扩展与收集

10.6.1 扩展参数

10.6.2 收集参数

10.7 函数声明与函数表达式

10.8 函数作为值

10.9 函数内部

10.9.1 arguments

10.9.2 this

10.9.3 caller

10.9.4 new.target

10.10 函数属性与方法

10.11 函数表达式

10.12 递归

10.13 尾调用优化

10.13.1 尾调用优化的条件

10.13.2 尾调用优化的代码

10.14 闭包

10.14.1 this对象

10.14.2 内存泄漏

10.15 立即调用的函数表达式

10.16 私有变量

10.16.1 静态私有变量

10.16.2 模块模式

10.16.3 模块增强模式

10.17 小结

第 11 章 期约与异步函数

11.1 异步编程

11.1.1 同步与异步

11.1.2 以往的异步编程模式

11.2 期约

11.2.1 Promises/A+规范

11.2.2 期约基础

11.2.3 期约的实例方法

11.2.4 期约连锁与期约合成

11.2.5 期约扩展

11.3 异步函数

11.3.1 异步函数

11.3.2 停止和恢复执行

11.3.3 异步函数策略

11.4 小结

第 12 章 BOM

12.1 window对象

12.1.1 Global作用域

12.1.2 窗口关系

12.1.3 窗口位置与像素比

12.1.4 窗口大小

12.1.5 视口位置

12.1.6 导航与打开新窗口

12.1.7 定时器

12.1.8 系统对话框

12.2 location对象

12.2.1 查询字符串

12.2.2 操作地址

12.3 navigator对象

12.3.1 检测插件

12.3.2 注册处理程序

12.4 screen对象

12.5 history对象

12.5.1 导航

12.5.2 历史状态管理

12.6 小结

第 13 章 客户端检测

13.1 能力检测

13.1.1 安全能力检测

13.1.2 基于能力检测进行浏览器分析

13.2 用户代理检测

13.2.1 用户代理的历史

13.2.2 浏览器分析

13.3 软件与硬件检测

13.3.1 识别浏览器与操作系统

13.3.2 浏览器元数据

13.3.3 硬件

13.4 小结

第 14 章 DOM

14.1 节点层级

14.1.1 Node类型

14.1.2 Document类型

14.1.3 Element类型

14.1.4 Text类型

14.1.5 Comment类型

14.1.6 CDATASection类型

14.1.7 DocumentType类型

14.1.8 DocumentFragment类型

14.1.9 Attr类型

14.2 DOM编程

14.2.1 动态脚本

14.2.2 动态样式

14.2.3 操作表格

14.2.4 使用NodeList

14.3 MutationObserver接口

14.3.1 基本用法

14.3.2 MutationObserverInit与观察范围

14.3.3 异步回调与记录队列

14.3.4 性能、内存与垃圾回收

14.4 小结

第 15 章 DOM扩展

15.1 Selectors API

15.1.1 querySelector()

15.1.2 querySelectorAll()

15.1.3 matches()

15.2 元素遍历

15.3 HTML5

15.3.1 CSS类扩展

15.3.2 焦点管理

15.3.3 HTMLDocument扩展

15.3.4 字符集属性

15.3.5 自定义数据属性

15.3.6 插入标记

15.3.7 scrollIntoView()

15.4 专有扩展

15.4.1 children属性

15.4.2 contains()方法

15.4.3 插入标记

15.4.4 滚动

15.5 小结

第 16 章 DOM2和DOM3

16.1 DOM的演进

16.1.1 XML命名空间

16.1.2 其他变化

16.2 样式

16.2.1 存取元素样式

16.2.2 操作样式表

16.2.3 元素尺寸

16.3 遍历

16.3.1 NodeIterator

16.3.2 TreeWalker

16.4 范围

16.4.1 DOM范围

16.4.2 简单选择

16.4.3 复杂选择

16.4.4 操作范围

16.4.5 范围插入

16.4.6 范围折叠

16.4.7 范围比较

16.4.8 复制范围

16.4.9 清理

16.5 小结

第 17 章 事件

17.1 事件流

17.1.1 事件冒泡

17.1.2 事件捕获

17.1.3 DOM事件流

17.2 事件处理程序

17.2.1 HTML事件处理程序

17.2.2 DOM0事件处理程序

17.2.3 DOM2事件处理程序

17.2.4 IE事件处理程序

17.2.5 跨浏览器事件处理程序

17.3 事件对象

17.3.1 DOM事件对象

17.3.2 IE事件对象

17.3.3 跨浏览器事件对象

17.4 事件类型

17.4.1 用户界面事件

17.4.2 焦点事件

17.4.3 鼠标和滚轮事件

17.4.4 键盘与输入事件

17.4.5 合成事件

17.4.6 变化事件

17.4.7 HTML5事件

17.4.8 设备事件

17.4.9 触摸及手势事件

17.4.10 事件参考

17.5 内存与性能

17.5.1 事件委托

17.5.2 删除事件处理程序

17.6 模拟事件

17.6.1 DOM事件模拟

17.6.2 IE事件模拟

17.7 小结

第 18 章 动画与Canvas图形

18.1 使用requestAnimationFrame

18.1.1 早期定时动画

18.1.2 时间间隔的问题

18.1.3 requestAnimationFrame

18.1.4 cancelAnimationFrame

18.1.5 通过requestAnimationFrame节流

18.2 基本的画布功能

18.3 2D绘图上下文

18.3.1 填充和描边

18.3.2 绘制矩形

18.3.3 绘制路径

18.3.4 绘制文本

18.3.5 变换

18.3.6 绘制图像

18.3.7 阴影

18.3.8 渐变

18.3.9 图案

18.3.10 图像数据

18.3.11 合成

18.4 WebGL

18.4.1 WebGL上下文

18.4.2 WebGL基础

18.4.3 WebGL1与WebGL2

18.5 小结

第 19 章 表单脚本

19.1 表单基础

19.1.1 提交表单

19.1.2 重置表单

19.1.3 表单字段

19.2 文本框编程

19.2.1 选择文本

19.2.2 输入过滤

19.2.3 自动切换

19.2.4 HTML5约束验证API

19.3 选择框编程

19.3.1 选项处理

19.3.2 添加选项

19.3.3 移除选项

19.3.4 移动和重排选项

19.4 表单序列化

19.5 富文本编辑

19.5.1 使用contenteditable

19.5.2 与富文本交互

19.5.3 富文件选择

19.5.4 通过表单提交富文本

19.6 小结

第 20 章 JavaScript API

20.1 Atomics与SharedArrayBuffer

20.1.1 SharedArrayBuffer

20.1.2 原子操作基础

20.2 跨上下文消息

20.3 Encoding API

20.3.1 文本编码

20.3.2 文本解码

20.4 File API与Blob API

20.4.1 File类型

20.4.2 FileReader类型

20.4.3 FileReaderSync类型

20.4.4 Blob与部分读取

20.4.5 对象URL与Blob

20.4.6 读取拖放文件

20.5 媒体元素

20.5.1 属性

20.5.2 事件

20.5.3 自定义媒体播放器

20.5.4 检测编解码器

20.5.5 音频类型

20.6 原生拖放

20.6.1 拖放事件

20.6.2 自定义放置目标

20.6.3 dataTransfer对象

20.6.4 dropEffect与effectAllowed

20.6.5 可拖动能力

20.6.6 其他成员

20.7 Notifications API

20.7.1 通知权限

20.7.2 显示和隐藏通知

20.7.3 通知生命周期回调

20.8 Page Visibility API

20.9 Streams API

20.9.1 理解流

20.9.2 可读流

20.9.3 可写流

20.9.4 转换流

20.9.5 通过管道连接流

20.10 计时API

20.10.1 High Resolution Time API

20.10.2 Performance Timeline API

20.11 Web组件

20.11.1 HTML模板

20.11.2 影子DOM

20.11.3 自定义元素

20.12 Web Cryptography API

20.12.1 生成随机数

20.12.2 使用SubtleCrypto对象

20.13 小结

第 21 章 错误处理与调试

21.1 浏览器错误报告

21.1.1 桌面控制台

21.1.2 移动控制台

21.2 错误处理

21.2.1 try/catch语句

21.2.2 抛出错误

21.2.3 error事件

21.2.4 错误处理策略

21.2.5 识别错误

21.2.6 区分重大与非重大错误

21.2.7 把错误记录到服务器中

21.3 调试技术

21.3.1 把消息记录到控制台

21.3.2 理解控制台运行时

21.3.3 使用JavaScript调试器

21.3.4 在页面中打印消息

21.3.5 补充控制台方法

21.3.6 抛出错误

21.4 旧版IE的常见错误

21.4.1 无效字符

21.4.2 未找到成员

21.4.3 未知运行时错误

21.4.4 语法错误

21.4.5 系统找不到指定资源

21.5 小结

第 22 章 处理XML

22.1 浏览器对XML DOM的支持

22.1.1 DOM Level 2 Core

22.1.2 DOMParser类型

22.1.3 XMLSerializer类型

22.2 浏览器对XPath的支持

22.2.1 DOM Level 3 XPath

22.2.2 单个节点结果

22.2.3 简单类型结果

22.2.4 默认类型结果

22.2.5 命名空间支持

22.3 浏览器对XSLT的支持

22.3.1 XSLTProcessor类型

22.3.2 使用参数

22.3.3 重置处理器

22.4 小结

第 23 章 JSON

23.1 语法

23.1.1 简单值

23.1.2 对象

23.1.3 数组

23.2 解析与序列化

23.2.1 JSON对象

23.2.2 序列化选项

23.2.3 解析选项

23.3 小结

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

24.1 XMLHttpRequest对象

24.1.1 使用XHR

24.1.2 HTTP头部

24.1.3 GET请求

24.1.4 POST请求

24.1.5 XMLHttpRequest Level 2

24.2 进度事件

24.2.1 load事件

24.2.2 progress事件

24.3 跨源资源共享

24.3.1 预检请求

24.3.2 凭据请求

24.4 替代性跨源技术

24.4.1 图片探测

24.4.2 JSONP

24.5 Fetch API

24.5.1 基本用法

24.5.2 常见Fetch请求模式

24.5.3 Headers对象

24.5.4 Request对象

24.5.5 Response对象

24.5.6 Request、Response及Body混入

24.6 Beacon API

24.7 Web Socket

24.7.1 API

24.7.2 发送和接收数据

24.7.3 其他事件

24.8 安全

24.9 小结

第 25 章 客户端存储

25.1 cookie

25.1.1 限制

25.1.2 cookie的构成

25.1.3 JavaScript中的cookie

25.1.4 子cookie

25.1.5 使用cookie的注意事项

25.2 Web Storage

25.2.1 Storage类型

25.2.2 sessionStorage对象

25.2.3 localStorage对象

25.2.4 存储事件

25.2.5 限制

25.3 IndexedDB

25.3.1 数据库

25.3.2 对象存储

25.3.3 事务

25.3.4 插入对象

25.3.5 通过游标查询

25.3.6 键范围

25.3.7 设置游标方向

25.3.8 索引

25.3.9 并发问题

25.3.10 限制

25.4 小结

第 26 章 模块

26.1 理解模块模式

26.1.1 模块标识符

26.1.2 模块依赖

26.1.3 模块加载

26.1.4 入口

26.1.5 异步依赖

26.1.6 动态依赖

26.1.7 静态分析

26.1.8 循环依赖

26.2 凑合的模块系统

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

26.3.1 CommonJS

26.3.2 异步模块定义

26.3.3 通用模块定义

26.3.4 模块加载器终将没落

26.4 使用ES6模块

26.4.1 模块标签及定义

26.4.2 模块加载

26.4.3 模块行为

26.4.4 模块导出

26.4.5 模块导入

26.4.6 模块转移导出

26.4.7 工作者模块

26.4.8 向后兼容

26.5 小结

第 27 章 工作者线程

27.1 工作者线程简介

27.1.1 工作者线程与线程

27.1.2 工作者线程的类型

27.1.3 WorkerGlobalScope

27.2 专用工作者线程

27.2.1 专用工作者线程的基本概念

27.2.2 专用工作者线程与隐式MessagePorts

27.2.3 专用工作者线程的生命周期

27.2.4 配置Worker选项

27.2.5 在JavaScript行内创建工作者线程

27.2.6 在工作者线程中动态执行脚本

27.2.7 委托任务到子工作者线程

27.2.8 处理工作者线程错误

27.2.9 与专用工作者线程通信

27.2.10 工作者线程数据传输

27.2.11 线程池

27.3 共享工作者线程

27.3.1 共享工作者线程简介

27.3.2 理解共享工作者线程的生命周期

27.3.3 连接到共享工作者线程

27.4 服务工作者线程

27.4.1 服务工作者线程基础

27.4.2 服务工作者线程缓存

27.4.3 服务工作者线程客户端

27.4.4 服务工作者线程与一致性

27.4.5 理解服务工作者线程的生命周期

27.4.6 控制反转与服务工作者线程持久化

27.4.7 通过updateViaCache管理服务文件缓存

27.4.8 强制性服务工作者线程操作

27.4.9 服务工作者线程消息

27.4.10 拦截fetch事件

27.4.11 推送通知

27.5 小结

第 28 章 最佳实践

28.1 可维护性

28.1.1 什么是可维护的代码

28.1.2 编码规范

28.1.3 松散耦合

28.1.4 编码惯例

28.2 性能

28.2.1 作用域意识

28.2.2 选择正确的方法

28.2.3 语句最少化

28.2.4 优化DOM交互

28.3 部署

28.3.1 构建流程

28.3.2 验证

28.3.3 压缩

28.4 小结

附录 A ES2018和ES2019

A.1 异步迭代

A.1.1 创建并使用异步迭代器

A.1.2 理解异步迭代器队列

A.1.3 处理异步迭代器的reject()

A.1.4 使用next()手动异步迭代

A.1.5 顶级异步循环

A.1.6 实现可观察对象

A.2 对象字面量的剩余操作符和扩展操作符

A.2.1 剩余操作符

A.2.2 扩展操作符

A.3 Promise.prototype.finally()

A.4 正则表达式相关特性

A.4.1 dotAll标志

A.4.2 向后查找断言

A.4.3 命名捕获组

A.4.4 Unicode属性转义

A.5 数组打平方法

A.5.1 Array.prototype.flatten()

A.5.2 Array.prototype.flatMap()

A.6 Object.fromEntries()

A.7 字符串修理方法

A.8 Symbol.prototype.description

A.9 可选的catch绑定

A.10 其他新增内容

附录 B 严格模式

B.1 选择使用

B.2 变量

B.3 对象

B.4 函数

B.4.1 函数参数

B.4.2 eval()

B.4.3 eval与arguments

B.5 this强制转型

B.6 类与模块

B.7 其他变化

附录 C JavaScript库和框架

C.1 框架

C.1.1 React

C.1.2 Angular

C.1.3 Vue

C.1.4 Ember

C.1.5 Meteor

C.1.6 Backbone.js

C.2 通用库

C.2.1 jQuery

C.2.2 Google Closure Library

C.2.3 Underscore.js

C.2.4 Lodash

C.2.5 Prototype

C.2.6 Dojo Toolkit

C.2.7 MooTools

C.2.8 qooxdoo

C.3 动画与特效

C.3.1 D3

C.3.2 three.js

C.3.3 moo.fx

C.3.4 Lightbox

附录 D JavaScript工具

D.1 包管理

D.1.1 npm

D.1.2 Bower

D.1.3 JSPM

D.1.4 Yarn

D.2 模块加载器

D.2.1 SystemJS

D.2.2 RequireJS

D.3 模块打包器

D.3.1 Webpack

D.3.2 JSPM

D.3.3 Browserify

D.3.4 Rollup

D.4 编译/转译工具及静态类型系统

D.4.1 Babel

D.4.2 Google Closure Compiler

D.4.3 CoffeeScript

D.4.4 TypeScript

D.4.5 Flow

D.5 高性能脚本工具

D.5.1 WebAssembly

D.5.2 asm.js

D.5.3 Emscripten与LLVM

D.6 编辑器

D.6.1 Sublime Text

D.6.2 Atom

D.6.3 Brackets

D.6.4 Visual Studio Code

D.6.5 WebStorm

D.7 构建工具、自动化系统和任务运行器

D.7.1 Grunt

D.7.2 Gulp

D.7.3 Brunch

D.7.4 npm

D.8 代码检查和格式化

D.8.1 ESLint

D.8.2 Google Closure Compiler

D.8.3 JSLint

D.8.4 JSHint

D.8.5 ClangFormat

D.9 压缩工具

D.9.1 Uglify

D.9.2 Google Closure Compiler

D.9.3 JSMin

D.9.4 Dojo ShrinkSafe

D.10 单元测试

D.10.1 Mocha

D.10.2 Jasmine

D.10.3 qUnit

D.10.4 JsUnit

D.10.5 Dojo Object Harness

D.11 文档生成器

D.11.1 ESDoc

D.11.2 documentation.js

D.11.3 Docco

D.11.4 JsDoc Toolkit

D.11.5 YUI Doc

D.11.6 AjaxDoc

作者简介

看完了

累计评论(1条) 4个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部