Go to file
2021-09-16 23:15:55 +00:00
.github/workflows Update markdown.yml 2021-09-14 16:30:40 +08:00
.idea feat: update 2021-03-09 07:27:57 +08:00
Answer feat: 类型判断 2021-09-13 19:26:53 +08:00
deep feat: 第一期精读 2021-06-05 17:48:14 +08:00
script chore: action 2021-03-23 11:33:40 +08:00
weekly Create 第三期.md 2021-06-21 11:55:42 +08:00
.gitignore chore: git ignore 2021-03-22 22:00:20 +08:00
LICENSE Create LICENSE 2021-09-13 11:33:05 +08:00
package.json feat: 算法 2021-04-13 21:48:01 +08:00
README.md Commit from GitHub Actions (markdown-autodocs) 2021-09-16 23:15:55 +00:00
yarn.lock feat: 算法 2021-04-13 21:48:01 +08:00

Fucking Frontend

Commit Stars Forks GitHub visitor badge

干爆前端。一网打尽前端学习、进阶、面试等各类内容,帮助大家一年内拿到期望的 offer大家可以关注【公众号】获取最新内容或者加我【微信】提意见(别忘了点个 Star 咯)。

本仓库欢迎各位读者提交你认为不错的内容,直接开 PR 或者 Issue 都可。

这是什么?

这是一份笔者从自学前端逐步成长为大厂基架组资深前端开发所沉淀下来的资料,其中包含了前端体系化学习、进阶、面试等内容。

此资料适用于初中级进阶、高级查漏补缺。

如何使用

前端学习路径笔者会以计划的方式呈现,从基础到进阶内容都会涉及,并且会附带上笔者的一些解释以便读者们将知识连贯起来,从而建立自己的知识体系而不是单独记忆松散的知识点。

推荐大家 Star 并 Fork 本项目(点击仓库顶部右上角按钮),然后 git clone 到本地后从上至下逐步完成学习计划。

当然除了前端学习路径笔者还提供了热门技术原理解析、工程化体系学习、Github 上的优秀资料等内容供大家自行选择,读者们可以挑选感兴趣的内容自行学习。

目录

前端核心学习路径

前端知识点很多这是公认的事情,但是我们确实没必要把所有知识都去学习,那样只会贪多嚼不烂。我们能把核心知识点、热门技术以及工作中需要用到的知识学好就已经能打败大部分前端工程师了,剩下的大家可以自行选择学习内容。

接下来的内容笔者会按照优先级高低来排布学习路径的目录,大家只需从上到下顺序学习即可。

为了保证大家学到的知识是正确的,下文中的文档资料笔者都使用了英文版本。因为在审核资料的过程中笔者发现不少中文文档都存在翻译错误或者过时的情况。

前端核心三板斧

前端核心三板斧分为三块,分别为 HTML、CSS、JS其中最重要的当然是 JS 了。

如果你还是一位初学者,推荐先自行完整阅读一至二本书后再按照该计划学习。关于书籍笔者推荐以下两本:

JS

数据类型

JS 数据类型分为两大类及八种数据类型,注意别漏了 ES6 新增的 bigint

类型判断

类型判断有好几种方式,分别为:

类型转换

类型转换算是 JS 中情况繁杂且容易出错,但是开发中还经常会遇到的知识点。强行全部记忆容易遗忘,推荐记忆及练习开发中的常见情况。

this

this 算是不少初学者容易搞混的一个知识点,但是它很重要,务必掌握。

务必自己总结规则!

闭包

作用域

作用域是指程序中定义变量的区域,该位置决定了变量的生命周期,也就是变量和函数的可访问范围。

原型

new

new 操作符可以帮助我们构建出一个实例,并且绑定上 this

变量提升

变量提升Hoisting可以将变量和函数在编译阶段放入内存从而在执行阶段时在声明前使用。

Class(类)

class 只是原型链的语法糖,与其它语言中的类不是同一样东西。

事件循环

大家都知道 JS 是一门单线程的非阻塞的脚本语言。这也就意味着,代码在执行的任何时候只有一个主线程来处理所有的任务。所以弄懂事件循环机制对我们学习 JS 至关重要。

继承

继承是面向对象语言Object-Oriented Language三大特征之一在 JS 中也占有非常重要的地位。而想要实现继承有多种方式,它们都有各自的优缺点。

迭代器与生成器

节流与防抖

节流指连续触发事件的情况下,在某个时间段内,函数只会执行一次。 防抖指在事件被触发一定时间后再执行回调函数,如果在一定时间内该事件又被重复触发,则重启计时。

柯里化Currying

柯里化就是将接收多个参数的函数转换成接收一个参数的函数。

垃圾回收

JavaScrip 在变量被创建时分配内存,并在对象不再使用时自动释放内存,这个过程被称为垃圾回收。另外我们主要学习 V8 引擎下的垃圾回收机制。

HTML

CSS

CSS 盒子模型

在 CSS 中所有的元素都被一个个的“盒子box”包围着我们广泛地使用两种“盒子” —— 块级盒子 (block box) 和 内联盒子 (inline box),理解这些“盒子”的基本原理,是我们使用 CSS 实现准确布局、处理元素排列的关键。

CSS 选择器

CSS 中,选择器用来指定网页上我们想要样式化的 HTML 元素。CSS 选择器提供了很多种方法,所以在选择要样式化的元素时,我们可以做到很精细的地步。

CSS 选择器是 CSS 规则的第一部分。它是元素和其他部分组合起来告诉浏览器哪个 HTML 元素应当是被选为应用规则中的 CSS 属性值的方式。选择器所选择的元素,叫做“选择器的对象”。

Flex

grid

React

合成事件

合成事件SyntheticEvent是 React 模拟原生 DOM 事件所有能力的一个事件对象即浏览器原生事件的跨浏览器包装器。React 根据 W3C 规范 定义了合成事件。需要注意的是 v16 和 17 版本中的合成事件有差异。

如何编写一个组件

Vue

组件库

组件库顾名思义指的就是将多个公共模块或者可复用的组件提取整合生成的一个仓库

知名度较广的组件库:

相关文档:

推荐文章:

微前端

是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将单页面前端应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。

优势:

  • 代码库更小,更内聚、可维护性更高
  • 松耦合、自治的团队可扩展性更好
  • 渐进地升级、更新甚至重写部分前端功能成为了可能
  • 独立开发部署,缩小变更范围,进而降低相关风险

框架:

推荐文章:

跨端框架

跨端的最主要的含义就是一套代码多端运行,减少重复劳动

目前看来,国内比较流行的是小程序, H5, App 三端跨的框架, uniapptaro 是其中做的比较出彩的两个框架。当然在 taro3.0 之前以下主要是说小程序taro 跟 uniapp 都是使用编译时做更多的事情,编译成小程序能够运行的代码。

而在 taro3.0 之后变成了与 remax 相同的思想,在运行时做更多的事情,保证了原框架代码能够完全使用,而不需要为了转换成其他小程序时做兼容。

面试

日常充电

Github 优秀学习资料

作者信息

微信扫码关注公众号,订阅更多精彩内容 加笔者微信进群与大厂大佬讨论技术