如何系统的学习 JavaScript(转)

我来单说系统的学习 JavaScript,因为这也是我一直在思考的问题,我认为至少有以下几个阶段:

ECMAScript 语法的学习。

推荐阅读 《JavaScript高级程序设计》第三版的第 1 页至第 192 页,这部分只涉及 ECMAScript 的语法,目的在于了解 JavaScript这门语言本身。推荐至少阅读两遍以上,然而即便阅读了两遍,依然会对于其中的诸多概念感到困惑,具体包括原型、原型链、静态作用域和动态作用域、执行上下文栈、变量对象、作用域链、this、执行上下文、闭包、按值传递、apply、call、bind、new、arguments、创建对象、继承、隐式类型转换。如果对这些概念没有较为深入的了解,请不要接着往下学习,那如何判断对这些概念的了解是属于深入的呢?其实也很简单,你到掘金或者 segmentfault 以这些关键词搜索相关文章,找到高收藏、高点赞量的文章,如果对这些文章讲的概念,能清楚的明白,就算是达标了。如果没有,应该就这些关键字搜索相关文章深入学习。关于这个部分,我想推荐下我的博客中的深入系列 15篇:mqyqingfeng/Blog ,也许会有所帮助。

underscore 源码的阅读。

我们学习了 JavaScript 语言本身,接下来应该是加强对于 JavaScript 这门语言的使用,我推荐阅读 underscore 的源码,相比 jQuery,lodash,更加适合新人阅读。重点通过使用 JavaScript 完成一些功能点的这个过程 熟练使用 JavaScript 的同时,克服对于语言和源码的恐惧。此外,之所以不立刻就去学习 DOM、BOM,是因为 DOM 和 BOM 带来的视觉效果的心理激励远比实现一个数组去重效果要多得多,很容易让人沉溺其中,而忽略了对于语言本身的修炼。

DOM 和 BOM 的学习。

如果再不学习这块,估计都按耐不住了……这一部分依然推荐阅读 《JavaScritp高级程序设计》,内容从第 193 页到第 443 页,我觉得关于 DOM 的讲解,高程和权威指南各有千秋,比如对于 clientTop、offsetTop、scrollTop 等与距离相关的属性的讲解,高程通过示意图更加形象,在事件方面,权威指南写了多个事件类型的多个示例代码,如果读者能跟着权威指南实现这一个一个的效果,一定收益良多。在阅读完 DOM、BOM 的内容后,事实上这一阶段才刚刚开始,接下来是学着去写原生组件。或者参考一些好的文章,或者参考 Github 上一些高 star 的项目,自己从零实现实现这些效果,这些效果包括但不止:轮播图、回到顶部、滚动时固定在顶部、懒加载 、预加载、下拉刷新、上拉加载、瀑布流实现 、移动端手势库、拖动……实现这些效果,会帮助你全方位的了解 DOM 的各类事件。不知道为什么,我又想推荐下自己造的一些轮子…… mqyqingfeng/Wheels在这个阶段结束前,希望你已经发布自己造的一些轮子,以及参照轮子的实现过程中至少明白 EventEmitter (自定义事件)以及如何以面向对象的方式组织代码。

ES6 的学习

最新的 ECMAScript 语法是肯定需要学习的,尤其是现在的大环境已经普通使用 ES6。这个部分,其实能推荐的书籍并不多,有两本,阮一峰老师的《ES6标准入门》以及 NICHOLAS C. ZAKS 的《深入理解ES6》,这位也是高程的作者。阅读完后,希望你能在以后的项目在尽可能满足业务需求的情况下使用 ES6 的语法书写代码。

框架的选择

现在主流的数据驱动的框架,有React、Vue、Angular,对这些框架稍稍了解以后,选择一个最喜欢的框架学习和使用,最好能在业务开发中用到。此外,不要与人争论框架好与坏,都是好框架。学习完基本使用后,希望你能学着深入了解技术栈中的各项技术。以 React 技术栈为例,了解 React 实现的原理,造一个类 React 的简易框架,阅读 Redux、React-redux、React-router 等库的源码……在这个过程中,明白一个框架的优秀之处。

设计模式

相信这个时候的你,早已经熟练的进行项目开发,在项目开发中,保证自己的代码优雅,健壮,可维护性高是对自己也是对同事的负责任。推荐阅读《JavaScript设计模式与开发实践》,相信你看到这里的内容,一定有种似曾相识的感觉,在过往的源码阅读中,一定或多或少的有所接触,明白设计模式,让它更好的指导你进行开发。

算法

我远没有到达这个部分,但我相信算法在后期一定是非常重要的存在,不清楚,就不推荐了。

更多

一定还有更多的东西,需要学习……

最后,做完这所有的学习至少需要 2 年以上的时间,甚至会更多更多,相信你肯定不会真的花 2 年时间只学习 JavaScript,所以我假设的是题主一定会先找到工作,然后在工作之余系统的学习 JavaScript,所以对于 jQuery,webpack,移动端开发之类的就不提了,相信你在工作中一定会学习到这些内容。

此外,不得不说,这样的学习路线,也很适合已经工作一段时间,对于 JavaScript 依然有不安定感的人。最后再推荐一些个人受益良多的书籍:

1.《你不知道的 JavaScript》上中两卷都已有售
2.《JavaScript 忍者秘籍》
3.《单页 Web 应用 JavaScript 从前端到后端》
4.《JavaScript DOM 编程艺术》第 2 版
5. 对了,MDN 是你重要的伙伴。


还有,如果可以的话,希望你在梳理自己知识的同时,能够将其分享出来,在与大家交流的过程中一定受益匪浅。最最后,我也在路上,与君共勉.

作者:冴羽
链接:https://www.zhihu.com/question/67467219/answer/253992931
来源:知乎


   转载规则


《如何系统的学习 JavaScript(转)》 lttztt 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录