如何循序渐进、有效地学习JavaScript?
今天推荐一个不错的课程:JavaScript核心原理讲解。
对于前端知识体系来说,JS是特别核心的,掌握其原理也十分重要。
如果你刚刚入门,还不知道怎么学JS的话,可以参考我的建议。
无论是巩固基础还是重新学一遍JavaScript,都是不错的选择。
买完课程的小伙伴,加我微信: DayDay2021,返现20元~
知名分析公司 SlashData 重磅发布了 2021 第一季度的《开发者报告》(第 20 版)。JavaScript 稳居编程语言榜首,全球近 1400 万开发者使用它,主要应用于 Web、云领域。
JavaScript 的重要性不言而喻,它和 HTML 、CSS 同属前端工程师必须掌握的三大技能。因硬件性能的不断提升,JavaScript 引擎性能得到显著缓解,让开发者有了很大的腾挪空间。除了前端,现在连后端也开始使用 JavaScript。并且,随着软件开发行业的规模扩张,企业更聚焦业务,不再更多地关注底层基础设施,因此需要越来越简单易用的工具,JavaScript 自然成为最合适的选择。
毫不夸张地说,现在我们看到的基本所有的主流互联网应用,它的前端都有大量的 JavaScript 代码。
但是很多人对 JavaScript 这门语言的印象都是简单易学,很容易上手。JavaScript 语言本身有很多复杂的概念,语言的使用者不必深入理解这些概念也可以编写出功能全面的应用。殊不知,这些复杂精妙的概念才是语言的精髓,即使是经验丰富的 JavaScript 开发人员,如果没有认真学习的话也无法真正理解它们。
如果你能深入理解语言内部的实现原理,那基本功一定不差;如果还能够在公司项目中熟练使用此工具,解决各种线上问题,接下来无论出现什么新技术、新框架,你都能轻松应对。
前端绿皮书《JavaScript 语言精髓与编程实践》的作者周爱民说过:每个工程师都应该构建一个语言知识结构。因为,一旦你建立了你的体系性,你对代码的洞察力绝对会随之而提升,让你可以在纷繁的代码中快速找到性能、组织、逻辑等方面的关键所在,并在语言层面给出合理的解释。这就相当于你创建了游戏规则,拥有了“编程游戏”中的上帝视角。你将会有一种切实的、万物如一的操控感。
要真正掌握这些知识,离不开日常工作的实践积累。就说前端君吧,也非常认可这方面的一个牛人,叫周爱民,他曾任支付宝业务架构师。周爱民老师接触 JavaScript 二十多年,他一直不断探索 JavaScript 语言背后的机制:一面研究它的语言精髓,一面做编程实践。
去年,订阅了他的专栏《JavaScript核心原理解析》跟着学下来,收获超出预期。
整个专栏深入浅出,实战性很强。在专栏中,他精选出高频场景化问题,用图文、原理、实践相结合的方式,带你掌握 JavaScript 的语言特性和核心原理,包括不限于数据类型(大厂一面必问题目)、事件循环、语法、继承-原型链、异步、深浅拷贝、闭包(原理,应用:防抖、节流...)、垃圾回收机制等等。老周将综合代码的特殊性、代码所涉问题的领域、与该代码相似的或同类的问题,将代码逐步分解、解析,一方面发掘它们潜在的应用,另一方面帮助你构建一个语言知识结构。
这个专栏和其他专栏不同的是,每一讲的标题都是一行代码,并且,在表达多种语言特性的同时,都指向一个核心的内容讲述方向。
周爱民老师希望通过这个专栏,可以让你找到自己对语言的认识,构建一个语言知识结构。他也始终认为,“构造认识”对你是极致重要的事情,并且越早越好。
学习任何东西都要亲自实践,还记得我第一次工作写一个头像裁切功能,苦思冥想好几个夜晚,头发都要被自己抓没了,也没弄明白原理,查了好多文章,又写了许多demo,最后还是做了出来,但是会有一些极限情况下的bug?一个组件一个组件的撸,一遍又一遍的撸,是学习语言最好的提升方法。
趁着五一放假,我把专栏从头到尾撸了一遍,重新理解了JavaScript 核心原理,这不,假期回来工作中就用上了,还真是没白看。
另外,专栏也给了我一些新的启发和想法。比如,日常生活中经常使用的深拷贝和浅拷贝,就是为了规避改变两个值互相影响的情况;以前都最顾着自己快速的去上手做项目,学习框架的内容,却忽视了这些最为基本的东西。当基础掌握的足够扎实的时候,也就会看什么都豁然开朗了。
总得来说,学完这个专栏,不仅对 JavaScript 的原理有了更加全面的了解,对语言知识结构也建立了更深的体系。得空准备以项目为中心,重新过一遍前面的文章。
别的不说,就 JavaScript 这块儿,我就没见过比这个讲得更好的资料,不仅限于一二三的步骤,还有方方面面涉及的其他知识点,可谓良心。
光我说不算,截了一些留言供你参考:
讲师周爱民,是南潮科技(Ruff)首席架构师。很多人知道周爱民老师,可能都是通过他写的《JavaScript 语言精髓与编程实践》一书,这本书被很多早期从业者奉为圭臬,更是有“前端绿皮书”之称。
周爱民老师从业二十多年,深入研究过 JavaScript、Delphi、Erlang,也专注于软件开发与架构、项目管理,曾担任盛大网络平台架构师、支付宝业务架构师和豌豆荚首席架构师。
他也特别热爱写作与分享,出版过《Delphi 源代码分析》、《大道至简:软件工程实践者的思想》、《大道至易:实践者的思想》、《程序原本》以及《我的架构思想:基本模型、理论与原则》等书。出过书的老师,在授课能力方面自然有自己独特优势技巧,帮你更好深入浅出的理解原理等相关内容。
根据专栏的整体脉络,周老师总结了一下每部分的主要内容:
1、从零开始
第一部分周爱民会主要讲述构成 JavaScript 语言的基础——JavaScript 语言的静态结构,主要包括词法环境、块级作用域、语句、声明、字面量、变量环境、模块(名字空间)等等。
2、从表达式到执行引擎
第二部分主要讲述 JavaScript 的执行过程,包括执行栈、执行队列、执行上下文、函数(函数对象/闭包)作为执行结构如何参与运算等等,还将讲述表达式(运算符+操作数)与优先级这个体系,说明表达式运算与语句运算间的不同。
3、从原型到类
第三部分会讲述 JavaScript 面向对象编程体系中最核心的一些设计,包括类继承、原型继承、属性表的使用、内部方法等等,并对索引数组和关联数组在 JavaScript 中的应用与整合做深度的分析。
4、从粗通到精通的进阶之路
最后,周爱民会讲述 JavaScript 作为动态语言的主要特性,包括动态的类型、动态的执行过程和动态的环境上下文等等。
如果你想进阶为高级前端工程师,JavaScript 的核心基础知识必不可少。弄清楚 JavaScript Engine 的工作原理和基本的 Call Stack / Memory Heap 也是重中之重。我一直认为,学习技术最好的过程,是从接纳和记忆知识开始的,弄懂核心原理之后,再结合实践不断深入思考,最终总结和沉淀出自己的经验。
在这个越来越浮躁的时代,还有那么多人愿意把宝贵的时光留给深度阅读,现在,我们每天的时间和注意力都被切割得很碎,在这个快节奏的时代还能坚持读书学习的人,有一个算一个,都是了不起的家伙。找对方法跟对人,才能事半功倍。
给大家申请了粉丝专属优惠:
帮你到这了
扫码查看详情👇
说真的,挺感谢周爱民老师的。这是一个可以长期影响你的课程,不仅脉络清晰,且兼具深度广度,值得多刷几遍。学习一种语言是个痛苦而漫长的过程,得拿出把妹的勇气和毅力。不管你信不信,反正我信了。建议你把握好,机会总是留给有准备的人。
买完课程的小伙伴,加我微信: DayDay2021,返现20元~