前端自省手册

LiYajie: 2021-04-26 面试

# 计算机基础

# 基本数据结构

  • 数组
  • 队列和栈
  • 链表
  • 二叉树
  • hash

# 常见的算法

  • DFS
  • BFS
  • 滑动窗口(双指针)
  • 回溯
  • 动态规划
  • 贪心(其实动态规划可以解决)
  • 排序
  • 二分查找

相关资料:

blog:

# 网络

对于前端来说,http,http2,https 的握手是高频题,要主要复习。

  • 极客时间-透视 HTTP 协议HTTP 作为前端最经常接触而且相对独立,可以先学习这个,再学期其他层。
  • 极客时间-趣谈网络协议作者生动用例子解释网络各层的作用和他们之间的关系,在此形成一个整体的架空,方便后面细节的学习
  • 极客时间 - Web 协议详解与抓包实战。这门课从高层到底层,讲解每一层的细节,由于里面讲解很详细也有很多理论知识,如 RSA 算法、基于椭圆曲线的 ECDH 算法等等可以考虑跳过

# 前端基础-JS

以下必须十分熟悉

  • 类型,涉及以下:
    • 类型种类
    • 判断
    • 转换
    • 深度拷贝
  • 闭包:
    • 作用域
    • v8 垃圾回收
    • 变量提升
  • 异步:
    • Promise的历史,用法,简单手写Promise实现
    • async await 原理,generator
    • 宏任务与微任务区别
  • 原型链:
    • prototype__proto__
    • 继承
    • oop 编程思想
  • 模块化
    • CommonJS 和 ES6 module
  • ES6 特性
    • let const
    • 箭头函数
    • Set、Map、WeakSet、WeakMap
    • 之前提及的Promise,async,Class,ES6 module

书籍:

BLOG:

掘金好文章:

# 前端基础-浏览器

经典问题:

  • 缓存策略:协商缓存和强缓存
  • 页面渲染过程
  • 页面性能优化

参考资料

  • 浏览器工作原理与实践 (opens new window)。这个也是个人十分推荐,因为本人看过《webkit技术揭秘》,发现书上很多东西都是讲浏览器一些实现方式,一堆 C++ 十分难受,但是这个专栏却用十分简单生动的方式来讲述浏览器本质,个人收获很多。
  • 《webkit技术揭秘》

# 前端基础-css

  • css选择器优先度
  • rememvhvwpx的关系,以及移动端适配方式
  • 清除浮动
  • 盒子模型
  • flex
  • 层级上下文
  • 各种布局

# 前端框架-vue

  1. 使用
    • provide / inject
    • props emit
    • attr listen
    • event bus
    • 自行实现dispatchbroadcase方法
    • vue的生命周期
    • vue全家桶使用,vuex, vue-router
    • data, computer, watcher使用
    • 组件通信
  2. 原理
    • 如何简单实现一个mvvm模型
    • new vue的时候发生什么,每个生命周期对应源码做了什么
    • data,watcher,computer的源码实现
    • nextTick的原理
    • 指令的本质
    • vue的性能优化
    • Diff 本质
  3. 组件实现
    • 手写一个toast组件
    • 手写一个confirm组件(支持promise方式调用)

参考资料:

  1. 基础使用:
    • jspang的vue教程
    • Vue2.0开发企业级移动端音乐web app
    • 前端成长必经之路 组件化思维与技巧
  2. 源码:
  • Vue.js源码全方位深入解析做补充 (opens new window)。电子书:《Vue.js 源码揭秘》对于router,vuex,slot,keep-alive有详细解释。
  • 尤雨溪教你写vue 高级vue教程 源码分析!!!!这个我特意去fronted master冲了几百元,没想到居然有搬运
  • 最后看完就做一下题目,看看自己能达到那种水平吧。12道vue高频原理面试题,你能答出几道?
  • 《深入浅出Vue.js》, 这本书真的好,作者每单介绍一个部分的时候,都会由最简单抽象的一个demo,一步一步变成框架实际的样子,最后拿你写的demo和框架实际的对比,分析双方优缺点。
  • 要先看剖析 Vue.js 内部运行机制把手教你如何写一个最小mvvm模式,mvvm是最核心的思想。当你能懂下面的图时候,那么可以进入下一步了
  1. 组件

# 前端工程化-webpack

  1. 使用和基本概念
  2. 学会优化
    • 体积优化: tree shaking、按需引入、代码切割
    • 打包速度优化:缓存、多线程打包、优化打包路径 参考资料:
  1. 原理
  • webpack构建步骤
  • 细说webpack之流程篇
  • webpack HMR原理解析
  • 从零实现webpack热更新HMR
  • 干货!撸一个webpack插件(内含tapable详解+webpack流程)
  • 手把手教你撸一个Webpack Loader
  1. 项目参考
LiYajie 发布于: 2021-04-26