主要是场景穿插八股,面试官人很nice,回答有反馈,还会主动讲解。上来先自我介绍,讲了一下做的项目,提到了虚拟列表。1. 虚拟列表的原理;2. 虚拟列表的好处;3. 如果不用虚拟列表会带来哪些问题?回答了一直增长可能内存爆掉(面试官说单纯的DOM应该不会,如果有事件或者监听更有可能)4. 然后提到了监听的问题,问怎么优化。回答了事件委托;为什么委托可行,讲了事件的捕获与冒泡。5. 页面上的元素在最上层显示?回答了z-index6. z-index的生效条件,回答了脱离文档流。面试官纠正为同一个层叠上下文7. 内存泄漏的场景场景(闭包,定时器没清除)。面试官补充了一个dom游离。8. 垃圾回收机制,标记清楚和引用计数。问哪个性能更好,答错了,引用计数更好,但是循环引用解决不了。8. 用户交互卡顿排查。dom频繁操作,监听事件过多。9. 页面白屏排查。回答的很凌乱,面试官带着梳理了一遍,从资源加载(css,js网络请求),到dom检查,再到报错,异常。10. script 标签异步加载(async, defer),defer的脚本具体执行时机。DOMContentLoaded11. will change询问。听说过没用过手撕: 一个有序数组的去重,不能用额外空间;快慢指针