自我介绍 blabla
问:说一下你是怎么构建自己的前端知识体系的?平常怎么学习前端的? blabla
问:最近有没有看过一些框架的源码?
答:最近看了koa的源码,vue的大致了解它的原理。
问:看你在简历中有写到git,了解git的工作流吗?
答:不了解。
问:项目中有用到uniapp,有用过条件编译吗?条件编译的原理?
答:用过,(不太知道它的底层原理)说了一下自己的理解,应该是在编译的过程中进行平台判断云云。
问:在项目中有没有遇到过什么问题?怎么解决的?
答:讲了一下图片缓存和图片预加载?
问:说一下浏览器的多进程架构吧。
答:五个进程blabla......
问:详细讲一下浏览器的渲染流程
答:构建Dom树,构建CSSOM树,合成渲染树,回流重绘。
问:怎么减少回流和重绘?
答:尽量少地改变宽高等会引起回流的操作,也可以让一些元素脱流,脱流之后就不会引起整个文档的回流了。
问:还做过什么前端优化的工作吗?除了刚刚已经说到的预加载和减少回流。
答:(一下子没想起来)说了一下优化数组去重,哈希表。
问:了解闭包吗?说一下你对闭包的理解。
答:返回一个函数,所以会将函数内部的变量暴露出去,使得函数内部的变量在外部也能访问,但是这个会导致内存泄漏。
问: 你提到了内存泄漏,为什么闭包会导致内存泄漏呢?怎么减少内存泄漏。
答:因为会导致变量不能被及时的回收。(具体的情况没有答上来),减少闭包的方法:尽量少使用闭包,在不不使用哪个变量之后及时将其置位null或者undefined。
问:浏览器缓存了解吗?说一下浏览器的缓存策略。
答:强缓存,弱缓存blabla.....(一下没想起来强缓存由什么控制)
问:强缓存是由那些header来控制的(于是他就问了)
答:(尬了一会儿)catch-control和expires,说了说区别。