阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

你的前端知识框架,该如何搭建?

  • 2019-05-21
  • 本文字数:1856 字

    阅读完需:约 6 分钟

你的前端知识框架,该如何搭建?

你好,我是 winter。前端工程师是研发体系中的重要岗位之一。可是,与此相对的是,系统性的教学方案几乎找不到。大部分前端工程师的知识,其实都是来自于实践和工作中零散的学习。


在上一篇专题留言中,我看到了很多前端工程师的困扰。



前端技术的更新如此迅速,在这样的大环境下,前端工程师保持自学能力就显得尤其重要了。因此,“学什么”“怎么学”就是我们要迫切解决的问题。


所以,我想带你梳理一套前端知识框架,帮你把知识点重新做个遍历,让你在学习的路上走的更轻松一些。这份知识框架,也是我在《重学前端》专栏里帮助大家重构前端架构的核心内容。

0 基础入门前端

对于 0 基础入门的同学,我建议你先去读几本经典的前端教材,打好起知识基础的地基。我们可以先从《JavaScript 高级程序设计》、《精通 CSS》看起。然后去阅读一些参考性质的网站,很推荐:MDN



《JavaScript 高级程序设计》


简介:《JavaScript 高级程序设计》被称为“程序员的红宝书”。几乎涵盖了 JavaScript 的大部分内容,有大量的例子,理解起来也并不太费解。



《精通 CSS》


简介:这本书将有用的 CSS 技术汇总在一起,还总结了 CSS 设计中的极具实践。CSS 看似简单,但真正精通 CSS 绝非易事。


如果你已经有 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、渲染、合成和绘制的流程来学习浏览器的工作原理。


在 API 部分,可以从 W3C 零散的标准中挑选几个大块的 API 来详细讲解,主要有:事件、DOM、CSSOM 几个部分,他们分别覆盖了交互、语义和可见效果,这是我们工作中用到的主要内容。


内容选自极客时间《重学前端》专栏


2019-05-21 17:0313636

评论 1 条评论

发布
用户头像
理解对于极客邦来说赚钱很重要,但是不希望看到 InfoQ 上的文章都开始变成了内容预览。可以接受专门打广告,有用的话大家一定会付费。但不能接受想看更多请付费这类隐性广告。希望 InfoQ 永远火下去。
2019-05-22 05:09
回复
没有更多了
发现更多内容

Nginx 在运维领域中的应用,看这一篇就够了

华章IT

nginx Linux 运维工程师

一个草根的日常杂碎(10月20日)

刘新吾

随笔杂谈 生活记录 社会百态

深入java week1-01 字节码、内存、GC、调试工具

闷骚程序员

【线上排查实战】AOP切面执行顺序你真的了解吗

Zhendong

spring aop

Flink窗口算子-6-8

小知识点

scala 大数据 flink

Go语言内存管理三部曲(三)图解GC算法和垃圾回收原理

网管

内存管理 垃圾回收 GC GC算法 Go 语言

架构师训练营 1 期 -- 第五周作业

曾彪彪

极客大学架构师训练营

游戏数值策划之常用excel函数

吴优秀同学

Excel 游戏

分布式下,我想要一致性

架构师修行之路

分布式 微服务

架构师必备的那些分布式事务解决方案!!

架构师修行之路

分布式 微服务 架构设计

架构训练营学习笔记之五技术选型(一)

于成龙

架构训练营

年纪轻轻怎么就卵巢早衰了?试管可帮忙!

Geek_65d32f

试管 三代试管

央行数字货币离我们还有多远?

CECBC

数字货币

利用区块链等技术,加强对交通运输信用信息的归集共享和分析应用

CECBC

区块链 交通运输

华为云瑶光:打通云边端界限,为企业云上业务带来最优解

华为云开发者联盟

华为 云服务

1分钟带你入门 React 公共逻辑抽离HOC...

Leo

大前端 React Hooks HOC Render Props

第四周作业

dll

聊聊技术人员如何学习成长

架构精进之路

职业成长

一个草根的日常杂碎(10月18日)

刘新吾

随笔杂谈 生活记录 社会百态

一个草根的日常杂碎(10月19日)

刘新吾

随笔杂谈 生活记录 社会百态

云原生在京东丨云原生时代下的监控:如何基于云原生进行指标采集?

京东科技开发者

云原生

算法分析关键

Geek_0b8195

算法和数据结构

mongodb 源码实现、调优、最佳实践系列-百万级代码量mongodb内核源码阅读经验分享

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 源码 中间件 分布式数据库mongodb

Java程序员还在为没有项目经验感到苦恼?快来看看GitHub上最火的SpringCloud微服务商城系统开源项目,附全套教程!

Java架构之路

Java 程序员 架构 面试 编程语言

万物互联的IoT时代,柔性电子会大行其道吗?

脑极体

甲方日常 35

句子

工作 随笔杂谈 日常

透视HTTPS建造固若金汤的堡垒

码哥字节

https 加密解密 HTTP

Linux的上手命令

Linux 常用命令

java week1练习

闷骚程序员

二十、深入Python迭代器和生成器

刘润森

Python

膜拜!阿里技术总监纯手打的《MySQL笔记》内部资料限时分享

Java架构师迁哥

你的前端知识框架,该如何搭建?_语言 & 开发_winter_InfoQ精选文章