一套完整的前端知识地图,告别零散知识点,打通任督二脉
前端工程师是研发体系中的重要岗位之一。可是,与此相对的是,系统性的教学方案几乎找不到。大部分前端工程师的知识,其实都是来自于实践和工作中零散的学习。
零基础入门前端
《javascript 高级程序设计》
简介:《javascript 高级程序设计》被称为“程序员的红宝书”。几乎涵盖了 javascript 的大部分内容,有大量的例子,理解起来也并不太费解。
如果你已经有 1 年以上的工作经验了,我们可以一起建立起前端的知识框架,再去把知识点做个遍历,这其中有原理和背景的部分,我去看知识的原理和背景就够了。如果没有的话,我们就去看整理和记忆这部分知识的方法,这样,即使你遇见无法一下子记住的知识,也可以很容易地查阅参考手册和标准来解决。
前端必备知识框架
我们先来讲讲什么叫做知识架构?我们可以把它理解为知识的“目录”或者索引,它能够帮助我们把零散的知识组织起来,也能够帮助我们发现一些知识上的盲区。
我们把前端知识在总体上分成基础部分和实践部分,基础部分包含了 javascript 语言、css 和 html 以及浏览器的实现原理和 api,这三个模块涵盖了一个前端工程师所需要掌握的全部知识,学完这三个部分,你再结合基本的编程能力,就可以应对基本的前端开发工作了。
javascript 知识架构图
在 javascript 的模块中,首先我们可以把语言按照文法、语义和运行时来拆分,这符合编程语言的一般规律:用一定的词法和语法,表达一定语义,从而操作运行时。
接下来,按照程序的一般规律,可以把运行时分为数据结构和算法部分——数据结构包含类型和实例(内置对象),算法是执行过程。
类型部分中,对象比其它所有类型加起来都复杂,所以我们会用较长的时间来学习对象,包括它的一些历史和设计思路。
执行过程应按照从大结构到小结构的角度来学习,从最顶层的事件循环和微任务,到函数、再到语句级的执行。
实例部分也很关键,但对 javascript 来说类似基础库,javascipt 的内置对象多达 150 以上,在mdn会有细致全面的讲解。
文法中的语法和语义基本是一一对应关系,在 javascript 标准中有一份语法定义表,建议随时拿出来看一看。
html 和 css 知识架构图
在 html 的部分,我们按照功能和语言来划分它的知识,html 的功能主要由标签来承担,所以首先要把标签做一些分类。
我们按照承担的不同功能,把标签分成下面几种。
1.文档元信息:通常是出现在 head 标签中的元素,包含了描述文档自身的一些信息;
2.语义相关:扩展了纯文本,表达文章结构、不同语言要素的标签;
3.链接:提供到文档内和文档外的链接;
4.替换型标签:引入声音、图片、视频等外部元素替换自身的一类标签;
5.表单:用于填写和提交信息的一类标签;
6.表格:表头、表尾、单元格等表格的结构。
除了标签之外,你还应该把 html 当作一门语言来了解下。但标记语言跟编程语言不太一样,比较基础的 html 的语法和几个重要的语言机制:实体、命名空间,你一定要掌握。
html 还有一个补充标准也很关键:aria,它是 html 的扩展,在可访问性领域,它有至关重要的作用。
css 部分,按照惯例,我们按照语言和功能划分。
- 语言部分,@rule、选择器、单位是三个要关注的部分。
- 功能部分,我们可以重点关注布局、绘制和交互类。
- 在布局类的两个最常用的布局:正常流和弹性布局。
- 绘制类,建议你分成图形相关的和文字相关的绘制。
浏览器的实现原理和 api
浏览器部分中浏览器的实现原理,是我们深入理解 api 的基础。
你可以从一般的浏览器设计出发,按照解析、构建 dom 树、计算 css、渲染、合成和绘制的流程来学习浏览器的工作原理。
如果你依然在编程的世界里迷茫,不知道自己的未来规划,自己是从事了五年的前端工程师,整理了一份2019最全面前端学习资料,欢迎加qun:四八四七五七七六零,里面可以与大神一起交流并走出迷茫。新手、进阶。可进群免费领取学习资料,看看前辈们是如何在编程的世界里傲然前行。对于学习web前端有任何问题(学习方法,学习效率,如何就业)都可以问我。
人生如梦,一切尽是虚幻,不若对酒当歌,满饮一杯,醉眼朦胧看世界又何妨哉! 【人生浮一大白】