2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

  • 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:0314639

评论 1 条评论

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

anyRTC 实时音视频打造安全合规壁垒

anyRTC开发者

网络安全 WebRTC RTC

币安智能链智能合约Dapp系统开发技术

薇電13242772558

智能合约

C统计量/ C statistic

Geek_Goldensikaiqi

上次挂在了京东(Java岗)二面不服气,这次终于拿下offer,皇天不负有心人了也是!

钟奕礼

Java 编程 程序员 架构 面试

百度搜索与推荐引擎的云原生改造 | Geek大咖说第一期

百度Geek说

安卓rxjava使用,现在做Android开发有前途吗?附面试题答案

欢喜学安卓

android 程序员 面试 移动开发

Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD

钟奕礼

Java 编程 程序员 架构 面试

1000道最新整理的Java 技术考题及解答,抢先直通TMDBATJW拿高薪

钟奕礼

Java 编程 程序员 架构 面试

消息队列(如 Kafka 等)的应用场景

五分钟学大数据

kafka 消息队列 4月日更

全网下载量过亿!12万字阿里内部Java面试手册有多强?

Java架构追梦

Java 架构 面试 成长笔记 阿里巴巴内部资料

BOE(京东方)2020年报发布:营收1355.53亿元  净利润大幅增长162.46%

爱极客侠

2021年金三银四跳槽季,呕心沥血整理出Java10W字面经,首次公布!

Java架构之路

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

阿里P8总结的1530页Java编程核心思想笔记,Github访问破百万!

Java架构之路

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

PHPStorm 安装Xdebug插件开启单步调试

慢慢de

win10 Xdebug PHPStorm

Kubenav: 使用手机管理你的 K8S 集群

郭旭东

Kubernetes k8s多集群管理

ThreadLocal超深度源码解读,为什么要注意内存泄漏?不要道听途说,源码底下见真知!

徐同学呀

ThreadLocal Java源码

龙归科技|邀您参与全球「身份管理日」

龙归科技

Kotlin @inline内联函数

季浩田 🍙

kotlin inline

Mokito 单元测试与 Spring-Boot 集成测试

Zhang

Java 单元测试 集成测试 Mokito Spring boot starter test

阿里内部疯传的《JDK源码剖析手册》!在GitHub上已高达百万访问量!

Java架构之路

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

智慧党建平台搭建,组织部干部任免系统开发

思码逸Merico 完成 A 轮融资,发布企业版 3.0 新产品,拓展研发效能边界

xiaotan

InfoQ 的朋友们

4.16-17 | 阿里云技术大咖分享新内容新交互时代下的新技术、新机会

阿里云CloudImagine

阿里云 音视频 WebRTC 直播架构

app启动速度优化,分享一点面试小经验,最全的BAT大厂面试题整理

欢喜学安卓

android 程序员 面试 移动开发

「 最具技术影响力企业号 TOP10 」—— InfoQ 写作平台【 1 周年盛典 】

InfoQ写作社区官方

1 周年盛典 热门活动

项目管理之相关方管理

Geek_XOXO

项目管理 复盘 相关方管理

翻译:《实用的Python编程》09_00_Overview

codists

Python

Flume拦截器实战

大数据技术指南

flume 4月日更

金三拿到5个offer,全靠这份Alibaba内部Java面试指南

Java 编程 程序员 架构 面试

DNS原理及其应用

赖猫

c++ 后台开发 网络编程 DNS 服务器开发

线上500万数据查询时间在37秒,作者将问题解决了,我却看到了更大的坑

谙忆

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