背景
因为最近有要换工作的打算,所以打算针对自身所接触的知识以及内容,来一个大的复盘以及总结,我会把目前所具备的知识按照每个模块进行梳理,并且输出成为一篇文章跟大家一起探讨,也希望可以帮助到一起正在面试的xdm找到一个好工作。每个模块的跳转地址也会根据顺序在下面提供入口。
正文
JS
- 面试准备-JS类型【已更新4.14】
- 面试准备-声明【已更新4.15】
- 面试准备-函数【已更新4.19】
- 面试准备-对象【已更新4.19】
- 面试准备-事件【已更新4.21】
- 面试准备-异步【已更新4.25】
- 面试准备-模块【已更新4.27】
- 面试准备-web worker【已更新5.05】
- 面试准备-浏览器存储【已更新5.09】
Vue2
- 面试准备-初始化全过程【已更新5.11】
- 面试准备-路由相关【已更新5.13】
Vue3
由于Vue3我之前总结过,所以我这里就直接引用之前的文章
- Vue3.*的初始化全过程
- Vue3-Vue2版本差异 简单的小结,从源码的层面上
vue3.0 diff的过程
- 相同头部 (循环)
- 相同尾部(循环)
- 新Vnode是否新增节点,根据首尾指针判断
- 新vnode是否删除节点,根据首尾指针判断
- 做key的数组,尝试通过Key进行命中,命中的继续进行patch 没命中的就删掉,如果有新的就插入
零散的点
- Vue 3.0的nextTick也不做降级处理了
- Vnode上增加一些标识符让patch的过程更加的简便,减少了不必要的判断过程
- watcher变成reactiveEffect
- Watchers 变成 effectScope
- 文件结构也更加清晰
- 采用TS
React
因为作者之前主要是以Vue为主的,所以在面试过程中并没有太着重的准备React的内容,不过关于React的基本使用方法,大家也都还是要掌握的关于这一块的知识点,大家可以直接跟着官网进行学习
浏览器
浏览器主要复习两个点:
- 渲染全过程以及涉及到的进程以及线程
如果有精力的小伙伴也可以去了解一下,为什么浏览器要设计成这个样子,其中整体的过程是怎么发展的
- V8引擎如何处理优化代码的以及垃圾回收相关的知识
作者只做了基础的了解,有能力有精力的小伙伴可以深入了解一下这一块的内容一定能让你更上一层!
Webpack
- 简单复习整体构建过程,主要关注依赖收集部分
- 关注loader的运行过程,loader的执行过程,尝试自定义loader
- 关注plugins的注册过程,执行过程,以及参数
- 简单了解complier跟compilation的差异
- 学习了解webpack的基本配置
RollUp
- 只有plugin, 类似webpack提供不同的钩子类型,以及生命周期,其中针对不同文件的处理也是来自于plugin的
- 不重写一些模块相关的上下文,举个例子比如import的重写(webpack就有)
- 从配置项来看webpack的复杂程度要高很多,rollup相对轻量
Vite
- vite源码学习-启动本地服务 【已更新5.18】
- vite源码学习-访问本地服务【待更新】
网络
网络这个part,网上已经有相当多的大佬总结过了,那么这里我就只说自己主要复习的点:
- HTTP协议版本差异 0.9 - 3
- HTTPS的TLS/SSL的握手过程
- TCP握手/挥手
- TCP/UDP头部结构
- 网络分层模型以及各个模型中相关的协议
- HTTP的状态码
- HTTP常见的请求以及相应头
- TCP相关的优化处理(慢启动/拥塞等)
服务搭建
- nginx学习搭建 【已更新5.20】
面经
- 关于我第一次换工作的面试经验(2022/06)【已更新7.14】
结束
如果有什么问题,也希望大家给我留言,大家一起讨论一起进步