产品特色
编辑推荐
JavaScript语言有很多复杂的概念,但却用简单的方式体现出来(比如回调函数),因此,JavaScript开发人无需理解语言内部的原理,就能编写出功能全面的程序。然而,JavaScript的这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发人,如果没有认真学习,也无法真正理解语言本身的特性。正是因为绝大多数人不求甚解,一遇到出乎意料的行为就认为是语言本身有缺陷,进而把相关的特性加入黑名单,久而久之就排除了这门语言的多样性,人为地使它变得不完整、不安全。
“你不知道的JavaScript”系列就是要让不求甚解的JavaScript开发人迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途,轻松理解前端圈里出现的各种技术、框架和流行术语。本书介绍了该系统的两个主题:“起步上路”以及“ES6及更新版本”。
内容简介
JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。本套书直面当前JavaScript开发人员不求甚解的大趋势,深入理解语言内部的机制,全面介绍了JavaScript中常被人误解和忽视的重要知识点。本书是其下卷,主要介绍了JavaScript入门知识和对ES6及未来发展趋势的展望。
本书既适合JavaScript语言初学者了解其精髓,又适合经验丰富的JavaScript开发人员深入学习。
作者简介
Kyle Simpson,推崇开放的互联网,对JavaScript、HTML5、实时/端对端通信和Web性能有深入研究。他是技术书作家、技术培训师、讲师和开源社区的活跃成员。
【译者简介】
单业,计算机专业硕士,软件工程师,曾供职于多家软件公司,从事软件开发工作,现居于上海。译有《你不知道的JavaScript(中卷)》。
目录
前言 xi
致谢 xvii
第 一部分 起步上路
序 2
第 1 章 深入编程 4
1.1 代码 4
1.2 表达式 5
1.3 实践 6
1.3.1 输出 7
1.3.2 输入 8
1.4 运算符 9
1.5 值与类型 11
1.6 代码注释 13
1.7 变量 14
1.8 块 16
1.9 条件判断 17
1.10 循环 18
1.11 函数 20
1.12 实践 23
1.13 小结 25
第 2 章 深入JavaScript 26
2.1 值与类型 26
2.1.1 对象 28
2.1.2 内置类型方法 30
2.1.3 值的比较 31
2.2 变量 35
2.3 条件判断 37
2.4 严格模式 39
2.5 作为值的函数 40
2.5.1 立即调用函数表达式 41
2.5.2 闭包 42
2.6 this标识符 44
2.7 原型 46
2.8 旧与新 47
2.8.1 polyfilling 47
2.8.2 transpiling 48
2.9 非JavaScript 49
2.10 小结 50
第 3 章 深入“你不知道的JavaScript”系列 51
3.1 作用域和闭包 51
3.2 this和对象原型 52
3.3 类型和语法 53
3.4 异步和性能 53
3.5 ES6及更新版本 54
3.6 小结 55
第 二部分 ES6及更新版本
序 58
第 1 章 ES?现在与未来 59
1.1 版本 60
1.2 transpiling 61
1.3 小结 63
第 2 章 语法 64
2.1 块作用域声明 64
2.1.1 let声明 65
2.1.2 const声明 68
2.1.3 块作用域函数 70
2.2 spread/rest 71
2.3 默认参数值 73
2.4 解构 77
2.4.1 对象属性复制模式 78
2.4.2 不只是声明 79
2.4.3 重复赋值 81
2.5 太多,太少,刚刚好 83
2.5.1 默认值赋值 84
2.5.2 嵌套解构 84
2.5.3 解构参数 85
2.6 对象字面量扩展 90
2.6.1 简洁属性 90
2.6.2 简洁方法 90
2.6.3 计算属性名 95
2.6.4 设定[[Prototype]] 96
2.6.5 super对象 97
2.7 模板字面量 98
2.7.1 插入表达式 99
2.7.2 标签模板字面量 100
2.8 箭头函数 103
2.9 for..of循环 109
2.10 正则表达式 111
2.10.1 Unicode标识 111
2.10.2 定点标识 112
2.10.3 正则表达式flags 116
2.11 数字字面量扩展 117
2.12 Unicode 118
2.12.1 支持Unicode的字符串运算 119
2.12.2 字符定位 121
2.12.3 Unicode标识符名 123
2.13 符号 123
2.13.1 符号注册 125
2.13.2 作为对象属性的符号 127
2.14 小结 128
第 3 章 代码组织 129
3.1 迭代器 129
3.1.1 接口 130
3.1.2 next()迭代 131
3.1.3 可选的return(..)和throw(..) 132
3.1.4 迭代器循环 133
3.1.5 自定义迭代器 134
3.1.6 迭代器消耗 137
3.2 生成器 138
3.2.1 语法 139
3.2.2 迭代器控制 144
3.2.3 提前完成 147
3.2.4 错误处理 149
3.2.5 Transpile生成器 151
3.2.6 生成器使用 152
3.3 模块 153
3.3.1 旧方法 153
3.3.2 前进 154
3.3.3 新方法 156
3.3.4 模块依赖环 164
3.3.5 模块加载 166
3.4 类 167
3.4.1 class 168
3.4.2 extends和super 169
3.4.3 new.target 174
3.4.4 static 175
3.5 小结 176
第 4 章 异步流控制 177
4.1 Promise 177
4.1.1 构造和使用Promise 178
4.1.2 Thenable 180
4.1.3 Promise API 181
4.2 生成器 + Promise 183
4.3 小结 185
第 5 章 集合 187
5.1 TypedArray 187
5.1.1 大小端(Endianness) 188
5.1.2 多视图 189
5.1.3 带类数组构造器 190
5.2 Map 192
5.2.1 Map值 194
5.2.2 Map键 194
5.3 WeakMap 195
5.4 Set 196
5.5 WeakSet 198
5.6 小结 199
第 6 章 新增API 200
6.1 Array 200
6.1.1 静态函数Array.of(..) 200
6.1.2 静态函数Array.from(..) 201
6.1.3 创建数组和子类型 204
6.1.4 原型方法copyWithin(..) 205
6.1.5 原型方法fill(..) 206
6.1.6 原型方法find(..) 206
6.1.7 原型方法findIndex(..) 207
6.1.8 原型方法entries()、values()、keys() 208
6.2 Object 209
6.2.1 静态函数Object.is(..) 209
6.2.2 静态函数Object.getOwnPropertySymbols(..) 210
6.2.3 静态函数Object.setPrototypeOf(..) 210
6.2.4 静态函数Object.assign(..) 211
6.3 Math 212
6.4 Number 214
6.4.1 静态属性 214
6.4.2 静态函数Number.isNaN(..) 214
6.4.3 静态函数Number.isFinite(..) 215
6.4.4 整型相关静态函数 215
6.5 字符串 216
6.5.1 Unicode函数 217
6.5.2 静态函数String.raw(..) 217
6.5.3 原型函数repeat(..) 217
6.5.4 字符串检查函数 218
6.6 小结 218
第 7 章 元编程 219
7.1 函数名称 219
7.2 元属性 222
7.3 公开符号 223
7.3.1 Symbol.iterator 223
7.3.2 Symbol.toStringTag与Symbol.hasInstance 224
7.3.3 Symbol.species 225
7.3.4 Symbol.toPrimitive 226
7.3.5 正则表达式符号 226
7.3.6 Symbol.isConcatSpreadable 227
7.3.7 Symbol.unscopables 228
7.4 代理 228
7.4.1 代理局限性 231
7.4.2 可取消代理 232
7.4.3 使用代理 233
7.5 Reflect API 240
7.6 特性测试 243
7.7 尾递归调用(Tail Call Optimization,TCO) 245
7.7.1 尾调用重写 247
7.7.2 非TCO优化 248
7.7.3 元在何处 250
7.8 小结 251
第 8 章 ES6之后 253
8.1 异步函数 254
8.2 Object.observe(..) 257
8.2.1 自定义改变事件 258
8.2.2 结束观测 259
8.3 幂运算符 260
8.4 对象属性与... 260
8.5 Array#includes 261
8.6 SIMD 262
8.7 WebAssembly (WASM) 262
8.8 小结 264
你不知道的JavaScript 下卷 下载 mobi epub pdf txt 电子书 格式