一、目录介绍
第一部分 类型和语法
第1章 类型
1.1 类型 4
1.2 内置类型 4
1.3 值和类型 6
1.3.1 undefined和undeclared 6
1.3.2 typeof Undeclared 7
1.4 小结 10
第2章 值
2.1 数组 11
2.2 字符串 13
2.3 数字 15
2.3.1 数字的语法 16
2.3.2 较小的数值 18
2.3.3 整数的安全范围 19
2.3.4 整数检测 20
2.3.5 32位有符号整数 20
2.4 特殊数值 21
2.4.1 不是值的值 21
2.4.2 undefined 21
2.4.3 特殊的数字 23
2.4.4 特殊等式 27
2.5 值和引用 28
2.6 小结 31
第3章 原生函数
3.1 内部属性((Class)) 34
3.2 封装对象包装 35
3.3 拆封 36
3.4 原生函数作为构造函数 37
3.4.1 Array(..) 37
3.4.2 Object(..)、Function(..)和RegExp(..) 40
3.4.3 Date(..)和Error(..) 41
3.4.4 Symbol(..) 42
3.4.5 原生原型 43
3.5 小结 45
第4章 强制类型转换
4.1 值类型转换 46
4.2 抽象值操作 47
4.2.1 ToString 48
4.2.2 ToNumber 52
4.2.3 ToBoolean 53
4.3 显式强制类型转换 56
4.3.1 字符串和数字之间的显式转换 57
4.3.2 显式解析数字字符串 62
4.3.3 显式转换为布尔值 65
4.4 隐式强制类型转换 67
4.4.1 隐式地简化 67
4.4.2 字符串和数字之间的隐式强制类型转换 68
4.4.3 布尔值到数字的隐式强制类型转换 71
4.4.4 隐式强制类型转换为布尔值 72
4.4.5 ||和&& 73
4.4.6 符号的强制类型转换 76
4.5 宽松相等和严格相等 77
4.5.1 相等比较操作的性能.77
4.5.2 抽象相等
4.6 抽象关系比较 89
4.7 小结 91
第5章 语法
5.1 语句和表达式 92
5.1.1 语句的结果值 93
5.1.2 表达式的副作用 95
5.1.3 上下文规则 99
5.2 运算符优先级 104
5.2.1 短路 107
5.2.2 更强的绑定 107
5.2.3 关联 108
5.2.4 释疑 110
5.3 自动分号 111
5.4 错误 113
5.5 函数参数 115
5.6 try..finally 117
5.7 switch 120
5.8 小结 122
附录A 混合环境JavaScript
第二部分 异步和性能
第1章 异步:现在与将来
1.1 分块的程序 139
1.2 事件循环 141
1.3 并行线程 143
1.4 并发 148
1.4.1 非交互 150
1.4.2 交互 150
1.4.3 协作 154
1.5 任务 156
1.6 语句顺序 157
1.7 小结 159
第2章 回调
2.1 continuation 162
2.2 顺序的大脑 163
2.2.1 执行与计划 164
2.2.2 嵌套回调与链式回调 165
2.3 信任问题 169
2.3.1 五个回调的故事 170
2.3.2 不只是别人的代码 171
2.4 省点回调 173
2.5 小结 176
第3章 Promise
3.1 什么是Promise 179
3.1.1 未来值 179
3.1.2 完成事件 183
3.2 具有then方法的鸭子类型 188
3.3 Promise信任问题 190
3.3.1 调用过早 190
3.3.2 调用过晚 191
3.3.3 回调未调用 192
3.3.4 调用次数过少或过多 193
3.3.5 未能传递参数/环境值 193
3.3.6 吞掉错误或异常 194
3.3.7 是可信任的Promise吗 195
3.3.8 建立信任 197
3.4 链式流 198
3.5 错误处理 206
3.5.1 绝望的陷阱 208
3.5.2 处理未捕获的情况 209
3.5.3 成功的坑 211
3.6 Promise模式 212
3.6.1 Promise.all((..)) 212
3.6.2 Promise.race((..)) 213
3.6.3 all((..))和race((..))的变体 216
3.6.4 并发迭代 217
3.7 PromiseAPI概述 219
3.7.1 newPromise(..)构造器 219
3.7.2 Promise.resolve(..)和Promise.reject(..) 219
3.7.3 then(..)和catch(..) 220
3.7.4 Promise.all((..))和Promise.race((..)) 221
3.8 Promise局限性 222
3.8.1 顺序错误处理 222
3.8.2 单一值 223
3.8.3 单决议 225
3.8.4 惯性 227
3.8.5 无法取消的Promise 230
3.8.6 Promise性能 231
3.9 小结 233
第4章 生成器
第5章 程序性能
第6章 性能测试与调优
附录A asynquence库
附录B 高级异步模式