ES6入门学习的规划

《ECMAScript 6 入门》这本书是ES6学习和研究的一个非常合适的目标,作者很有想法,在出版的时候是以开源的形式出版的,所以电子的和纸质的版本都有。一开始我是买纸质书来学习的,在18年下半年花了2周的时间,学习了大概的东西,正好用于当时接下来的两个产品的改版。 19年来了,纸质书送给了别人,现在有重新梳理ES6知识点的想法,所以电子书就变成了重新学习的一个不二选择,而且电子书也有个优点,就是作者会把一些最新的ES标准内容,还会补充到里面,估计将来内容增加或者调整多了,应该还会再出新版的纸质书。 不管怎么说,在自己有条件的情况下,都值得去购买纸质书,这个行业需要更多类似的作者出来做类似地有价值的事情。

这本书包含的内容比较全面,但是从实际使用的角度来说,一股脑地从前学到后,不一定是一个很合适的方法。 比如说这本书里面在介绍数组的扩展、以及对象的扩展的时候,有比较多的内容在介绍ES6新增的数组和对象的api,我个人认为这些api不是不重要,但是不一定要在这本书里面学习,相反,如果数组、对象等内置对象的api很重要,那另外再单独地分别去学习这些内置对象会更全面一点,所以我在学习的时候,会选择性地忽略掉一些api相关的知识点;再比如这本书里面的Set、Map以及Proxy、Reflect这些知识点,js算是很晚才有这些知识点的语言,类比其它语言来看,这些点都算是比较高级的内容,学习它们的必要性是肯定的,但是不着急去学,不需要一开始就要把它们弄得特别熟练,看几遍掌握好它们被推出和应用的思想,在将来需要的时候,再回来加强学习也是可以的。

按照知识点的一些先后关系,以及知识点学习的必要性、重要程度,我把此书的学习内容规划为了4个部分。Part1是ES6语言新的一些基础特性,比如let&const声明、解构赋值等;Part2是ES6语言最核心的最重要的部分,包含Promise、Iterator接口、Generator函数、Async函数、Class声明和Module语法等等。熟练地掌握Part1和Part2,基本上等同于已经掌握了ES6。Part3是跟新的api相关的几个章节,字符串、正则、数值等;Part4是高级内容,Set、Map、Proxy和Reflect。整理如下:

原始章节序号 内容 阶段
01 let 和 const 命令 Part1
02 变量的解构赋值 Part1
07 函数的扩展 Part1
08 数组的扩展 Part1
09 对象的扩展 Part1
11 Symbol Part1
15 Promise 对象 Part2
16 Iterator 和 for…of 循环 Part2
17 Generator 函数的语法 Part2
18 Generator 函数的异步应用 Part2
19 async 函数 Part2
20 Class 的基本语法 Part2
21 Class 的继承 Part2
22 Module 的语法 Part2
23 Module 的加载实现 Part2
03 字符串的扩展 Part3
04 字符串的新增方法 Part3
05 正则的扩展 Part3
06 数值的扩展 Part3
10 对象的新增方法 Part3
12 Set 和 Map 数据结构 Part4
13 Proxy Part4
14 Reflect Part4

在学习过程中,我的想法是边学习边记录要点,为了防止变成复制原本的书籍内容,在记录要点的时候,尽量再从自身的角度做提炼和总结,应该假定自己是理解这些要点的,而不是在记录的时候,还要把详细的例子什么的,完全记录下来。 记录的内容应该变为自己快速参考和回顾的依据,不能“记账”。 重要章节的学习,至少应该产出一篇学习笔记,甚至更多。比如Generator函数,书籍里面提到了thunk函数和co模块,源码都比较简单,所以值得从源码角度去分析下Generator函数自动执行的细节,这样肯定会加深对这个知识点的理解。再比如Promise,这个知识点的实现,其实跟语言没有关系,其它的语言比如Object-c以及java语言,都可以实现它,所以在学习过程中,要是也能从实现层面去了解细节,肯定是更有好处的。

再有就是内置对象的学习,再定一个学习计划出来,专门学习几个重要常见的内置对象(从mdn上学),结合实例去理解和掌握,记录一些自己思维中的疏忽点、难点,将来什么时候忘了,可能只需要回来看一眼,就知道该怎么继续弄了。