《ES 2015/2016编程实战》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)JD.艾萨克斯著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2019
  • ISBN:9787302519416
  • 页数:327 页
图书介绍:本书简要介绍使用ES6和ES7的JavaScript编程,不引入晦涩的术语和陌生的示例。在44个快捷案例中,你将使用ES6和ES7最新功能快速入手编写程序。开篇介绍新语法、声明、数据类型,讨论如何使用Promises、Classes和Iterators等构建模块。本书的示范项目讲解清晰,通俗易懂。每一章都提供紧贴实用的练习,指导你从做中学,助你树立起使用新技能的信心!

第1课 ECMAScript规范和提案流程 1

1.1 ECMAScript简史 1

1.2 ES2015增加这么多特性的原因 2

1.3 谁决定添加何种特性 2

1.3.1 规范阶段 2

1.3.2 选择某个阶段 3

1.4 本书所讨论的内容 4

本课小结 4

第2课 使用Babel转编译 5

2.1 什么是转编译 5

2.1.1 编译成JavaScript语言 5

2.1.2 Babel的适用场合 6

2.2 配置Babel 6 6

2.3 本书所需的Babel配置 8

2.3.1 源代码映射的注意事项 9

2.3.2 将Babel配置为NPM脚本 9

本课小结 10

第3课 使用Browserify捆绑模块 11

3.1 什么是模块 11

3.2 模块在Node.js中如何工作 11

3.3 什么是Browserify 12

3.4 Browserify如何协助ES6模块 12

3.5 让Browserify与Babel一起工作 13

3.5.1 安装Browserify 13

3.5.2 使用babelify创建项目 13

3.6 Browserify的替代选择 16

本课小结 16

单元1 变量和字符串 19

第4课 使用let声明变量 19

4.1 let的作用域 20

4.2 let提升的工作原理 24

4.3 使用let还是使用var 26

本课小结 27

第5课 使用const声明常量 29

5.1 常量的工作机制 30

5.2 何时使用常量 33

本课小结 35

第6课 新字符串方法 37

6.1 搜索字符串 38

6.2 填充字符串 40

本课小结 42

第7课 模板字面量 45

7.1 什么是模板字面量 46

7.1.1 模板字面量的字符串插值 47

7.1.2 模板字面量的多行字符串 49

7.2 模板字面量是不可重用的模板 50

7.3 使用标记模板字面量进行自定义处理 51

本课小结 54

第8课 顶点项目:构建领域特定语言 57

8.1 创建一些辅助函数 58

8.2 创建一个HTML转义的DSL 59

8.3 创建一个将数组转换为HTML的DSL 60

本课小结 61

单元2 对象和数组 65

第9课 新的数组方法 65

9.1 使用Array.from构建数组 66

9.2 使用Array.of构建数组 68

9.3 使用Array.prototype.fill构建数组 69

9.4 使用Array.prototype.includes搜索数组 71

9.5 使用Array.prototype.find搜索数组 72

本课小结 73

第10课 Object.assign 75

10.1 使用Object.assign设置默认值 76

10.2 使用Object.assign扩展对象 78

10.3 在使用Object.assign时防止对象改变 80

10.4 如何使用Object.assign赋值 82

本课小结 84

第11课 解构 85

11.1 解构对象 86

11.2 解构数组 88

11.3 结合数组解构和对象解构 89

11.4 可以解构的类型 91

本课小结 92

第12课 新对象字面量语法 93

12.1 简写属性名称 94

12.2 简写方法名称 96

12.3 计算属性名称 99

本课小结 100

第13课 符号 101

13.1 使用符号作为常量 102

13.2 使用符号作为对象键 104

13.3 使用全局符号创建行为钩子 105

13.4 使用公知符号修改对象行为 107

13.5 符号的陷阱 109

本课小结 110

第14课 顶点项目:模拟锁和钥匙 111

14.1 创建锁和钥匙系统 111

14.2 创建Choose the Door游戏 113

本课小结 117

单元3 函数 121

第15课 默认参数和rest 121

15.1 默认参数 122

15.2 使用默认参数避免重新计算值 125

15.3 使用rest操作符收集参数 127

15.4 使用rest在函数之间传递参数 129

本课小结 130

第16课 解构参数 131

16.1 解构数组参数 132

16.2 解构对象参数 134

16.3 模拟命名参数 134

16.4 创建别名参数 137

本课小结 138

第17课 箭头函数 139

17.1 使用箭头函数使代码简洁 140

17.2 使用箭头函数维护上下文 143

17.3 箭头函数的陷阱 145

本课小结 147

第18课 生成器函数 149

18.1 定义生成器函数 150

18.2 使用生成器函数 152

18.3 使用生成器函数创建无限列表 154

本课小结 156

第19课 顶点项目:囚徒困境 157

19.1 生成囚徒 158

19.2 让囚徒互动 160

19.3 获取和存储结果 161

19.4 将模拟程序结合在一起 162

19.5 哪种囚徒表现最好 164

本课小结 166

单元4 模块 169

第20课 创建模块 169

20.1 模块规则 170

20.2 如何创建模块 171

20.3 JavaScript文件何时成为模块 175

本课小结 176

第21课 使用模块 177

21.1 指定模块的位置 178

21.2 从模块中导入值 179

21.3 如何绑定导入值 182

21.4 导入副作用 183

21.5 对模块进行分解和组织 184

本课小结 187

第22课 顶点项目:猜单词游戏 189

22.1 规划 190

22.2 单词模块 190

22.3 状态模块 191

22.4 游戏界面模块 192

22.5 index 194

本课小结 195

单元5 迭代子 199

第23课 迭代子概述 199

23.1 迭代子的定义 200

23.2 for..of语句 200

23.3 spread 202

23.4 迭代器——观察藏在迭代子下的机制 206

本课小结 210

第24课 集合 211

24.1 创建集合 212

24.2 使用集合 213

24.3 WeakSet简介 216

本课小结 217

第25课 映射 219

25.1 创建映射 220

25.2 使用映射 221

25.3 何时使用映射 223

25.4 WeakMap简介 227

本课小结 227

第26课 顶点练习:21点游戏 229

26.1 若干张纸牌和一副牌 230

26.2 让CPU缓慢运行,便于玩家观察 234

26.3 将各部分代码组合在一起 235

本课小结 239

单元6 类 243

第27课 类概述 243

27.1 类的声明 244

27.2 实例化类 246

27.3 导出类 247

27.4 类方法不绑定 248

27.5 在类定义中设置实例属性 249

27.6 静态属性 251

本课小结 252

第28课 扩展类 255

28.1 继承 256

28.2 super 257

28.3 继承类时常见的错误 259

本课小结 260

第29课 顶点项目:彗星游戏(Comets) 263

29.1 创建可控的精灵 264

29.2 添加彗星 265

29.3 发射火箭 266

29.4 物体碰撞时 268

29.5 添加爆炸效果 270

本课小结 271

单元7 异步工作 275

第30课 promise 275

30.1 使用promise 276

30.2 错误处理 278

30.3 promise辅助函数 279

本课小结 282

第31课 高级promise 283

31.1 创建promise 284

31.2 嵌套的promise 286

31.3 捕获错误 288

本课小结 291

第32课 异步函数 293

32.1 使用生成器的异步代码 294

32.2 异步函数概述 296

32.3 异步函数中的错误处理 297

本课小结 299

第33课 observable 301

33.1 创建observable 302

33.2 组合(编写)observable 304

33.3 创建observable组合器 305

本课小结 306

第34课 顶点项目:画布画廊 307

34.1 获取图片 308

34.2 在画布上绘制图片 309

34.3 重复过程 311

本课小结 314

附录 习题答案 315