作者根据自己多年的前后端开发经验,站在零基础读者的角度,详尽介绍了ES6的核心技术和ES7~ES11等后续版本的新增技术,以及各种中高级开发技巧。
全书共14章,主要内容包括ES6简介、let与const、字符串的扩展、数组的扩展、对象的扩展、函数的扩展、解构赋值、新增运算符、新增类型、可迭代对象、类(class)、Proxy与Reflect、异步编程、模块化等。
为了方便高校老师教学,本书不但配备了所有案例的源代码,还提供了配套PPT课件。本书适合作为前端开发人员的参考书,也可以作为大中专院校相关专业的教学参考书。
本书并不是一本大而全的字典,内容系统且重点介绍常用的知识点,提炼知识精华,适合入门小白;
本书讲解通俗易懂,通过实例讲解,并配有练习题、面试题等,帮助前端小白轻松入门;
本书提供学习指导和交流(社群加入指南见前言);
本书配有习题答案、源码文件、PPT教学课件;
本书增加ES7-ES12方面的知识点,方便读者参考;
莫振杰,从事前后端开发4年多,开发过绿叶学习网、广州智能工程研究会网站、大量在线应用工具以及各种类型网站,业余时间阅读大量国内外技术书籍,著有多本编程书。现为绿叶学习网的站长,该网站用于分享其前后端开发经验。作者编写分享的原创在线教程在互联网受网友推崇,阅读量600万 。 今年又开发了系列前端线上付费课程。曾出版《HTML CSS JavaScript基础教程 Web前端开发精品课》《Web前端开发精品课 JavaScript基础教程》等多种热门图书,累积印刷过13万册。
第 1 章 ES6 概述 1
1.1 ES6 是什么 1
1.1.1 ES6 简介 1
1.1.2 本书的适用版本 2
1.2 学前准备 2
1.2.1 教程说明 2
1.2.2 环境说明 3
1.3 console.log() 4
第 2 章 let 和 const 7
2.1 深入了解 var 7
2.2 let 8
2.2.1 let 简介 8
2.2.2 let 的用途 11
2.3 const 14
2.3.1 const 简介 14
2.3.2 深入了解 const 14
2.4 暂时性死区 16
2.4.1 暂时性死区简介 16
2.4.2 深入了解暂时性死区 17
2.5 实践 18
2.6 本章练习 19
第 3 章 字符串的扩展 20
3.1 字符串的扩展简介 20
3.2 检索字符串:includes()、startsWith()、endsWith() 21
3.3 重复字符串:repeat() 22
3.4 去除空白:trim()、trimStart()、trimEnd() 23
3.5 长度补全:padStart()、padEnd() 23
3.6 模板字符串 25
3.6.1 语法简介 25
3.6.2 深入了解 30
3.7 本章练习 32
第 4 章 数组的扩展 33
4.1 数组的扩展简介 33
4.2 判断数组:Array.isArray() 34
4.3 创建数组:Array.of() 35
4.4 转换数组:Array.from() 37
4.4.1 类数组 37
4.4.2 Array.from() 41
4.5 填充数组:fill() 43
4.6 打平数组:flat() 44
4.6.1 语法简介 44
4.6.2 深入了解 44
4.7 判断元素:includes() 46
4.8 查找元素:find()、findIndex() 48
4.8.1 find() 48
4.8.2 findIndex() 49
4.9 every() 和 some() 49
4.10 keys()、values() 和 entries() 51
4.11 字符串和数组的相同方法 53
4.12 本章练习 55
第 5 章 对象的扩展 56
5.1 对象的扩展简介 56
5.2 简写语法 56
5.2.1 属性简写 57
5.2.2 方法简写 58
5.3 判断相等:Object.is() 59
5.4 合并对象:Object.assign() 60
5.4.1 语法简介 60
5.4.2 深入了解 61
5.4.3 应用场景 63
5.5 冻结对象:Object.freeze() 65
5.6 遍历对象:Object.keys()、Object.
values()、Object. entries() 66
5.7 转换对象:Object.fromEntries() 67
5.8 获取原型:Object.getPrototypeOf() 68
5.9 获取属性名:Object.
getOwnPropertyNames() 69
5.10 定义属性:Object.
defineProperty() 71
5.10.1 语法简介 71
5.10.2 配置对象 72
5.10.3 数据属性和访问器属性 77
5.10.4 对比了解 78
5.11 globalThis 79
5.12 本章练习 79
第 6 章 函数的扩展 81
6.1 函数的扩展简介 81
6.2 箭头函数 81
6.2.1 语法简介 81
6.2.2 深入了解 83
6.2.3 应用场景 85
6.3 参数默认值 88
6.3.1 语法简介 88
6.3.2 深入了解 89
6.4 name 属性 90
6.5 本章练习 91
第 7 章 解构赋值 93
7.1 解构赋值简介 93
7.2 对象的解构赋值 94
7.2.1 语法简介 94
7.2.2 深入了解 95
7.2.3 应用场景 99
7.3 数组的解构赋值 100
7.3.1 语法简介 100
7.3.2 深入了解 101
7.3.3 应用场景 102
7.3.4 总结 103
7.4 字符串 103
7.5 本章练习 104
第 8 章 新增运算符 106
8.1 展开运算符 106
8.1.1 语法简介 106
8.1.2 深入了解 107
8.1.3 应用场景 108
8.2 剩余运算符 110
8.2.1 解构赋值 110
8.2.2 处理 arguments 111
8.3 求幂运算符 112
8.4 本章练习 113
第 9 章 新增类型 114
9.1 新增类型简介 114
9.2 Symbol 114
9.2.1 语法简介 114
9.2.2 深入了解 116
9.2.3 应用场景 119
9.3 Set 121
9.3.1 Set 简介 121
9.3.2 Set 的属性 122
9.3.3 Set 的方法 123
9.3.4 Set 的应用 127
9.4 Map 130
9.4.1 Map 简介 130
9.4.2 Map 的属性 131
9.4.3 Map 的方法 132
9.4.4 Map 的应用 136
9.5 本章练习 138
第 10 章 可迭代对象 139
10.1 可迭代对象是什么 139
10.1.1 自定义的可迭代对象 139
10.1.2 内置的可迭代对象 141
10.2 for...of 142
10.2.1 for...of 简介 142
10.2.2 深入了解 for...of 144
10.3 本章练习 146
第 11 章 类(class) 147
11.1 类简介 147
11.1.1 类的定义 147
11.1.2 静态方法 149
11.1.3 ES7 写法 150
11.2 类的继承 150
11.3 本章练习 153
第 12 章 Proxy 和 Reflect 155
12.1 Proxy 对象 155
12.1.1 Proxy 简介 155
12.1.2 Proxy 方法 156
12.1.3 应用场景 165
12.2 Reflect 对象 170
12.2.1 规范 Object 的部分操作 171
12.2.2 配合 Proxy 一起使用 173
12.3 本章练习 178
第 13 章 异步编程 180
13.1 异步编程简介 180
13.2 同步和异步 180
13.2.1 浏览器进程 180
13.2.2 单线程 181
13.2.3 同步代码和异步代码 182
13.3 事件循环 183
13.3.1 事件循环简介 183
13.3.2 for 循环与 setTimeout() 185
13.4 Promise 对象 188
13.4.1 Promise 对象是什么 188
13.4.2 Promise 语法 191
13.4.3 Promise.resolve() 和 Promise.
reject() 197
13.4.4 Promise.all() 和 Promise.
race() 199
13.4.5 Promise.prototype.finally() 201
13.5 async 和 await 202
13.5.1 async 202
13.5.2 await 203
13.6 本章练习 206
第 14 章 模块化 210
14.1 模块化简介 210
14.2 模块化语法 212
14.2.1 导出语句 212
14.2.2 导入语句 218
14.2.3 深入了解 219
14.2.4 特别注意 222
14.3 本章练习 225
附录
附录 A 字符串的扩展 228
附录 B 数组的扩展 229
附录 C 对象的扩展 230
附录 D Set 类型 231
附录 E Map 类型 232
附录 F Proxy 对象 233
附录 G Reflect 对象 234