一:项目方面
1. 怎么做i18n国际化的,对于阿拉伯地区呢?
2. 除了(自己介绍了虚拟列表和 MutationObserver 做列表优化),你还有什么方法呢?
二:css 方面
1. 重排和重绘,有哪些属性会影响到重排和重绘?怎么优化呢?
2. 元素隐藏的方法
3. 元素居中方式有几种
4. 讲讲 flex 布局和 grid 布局的差异,应用场景
三:js 方面
1. let const var 的区别,暂时性死区的原因
2. 怎么判断一个变量是不是数组,有哪些方法
3. 数组 api 有哪些,哪些能改变数组本身的 api
4. 内存泄漏的原因,怎么解决内存泄漏,你碰见过内存泄漏的案例有哪些,举案例说明,怎么查看内存泄漏。
5. call apply bind 的区别, bind 第一次调用返回什么?
6. 你了解浏览器的存储方式有哪些吗?sessionStorage localStorage cookie的区别 , IndexDB有了解过吗? 应用场景呢?
四:框架
1. Vue 和 React 的区别
2. 为什么要使用 虚拟 DOM
3. vue 文件怎么最终运行在浏览器中,这个过程发生了什么(各种 loader 解析,生成 css 和 js)
五:前端代码题
1. this 指向
2. 宏任务,微任务(真老六,Promise中没有给出reject和resolve),主线程任务,给出答案
六:手写题
1. 手写 Promise 的 all 方法
2. 手写快速排序
七:计网和网络安全
1. 说一说状态码有哪些,返回304的原因,与哪些响应头或者请求头有关,更多的呢? 301,302是什么原因,区别呢?
2. 聊一聊你遇见过的前端安全问题,csrf 和 xss,怎么防范呢?
八:反问环节
1. 重排和重绘你有什么优化手段(似乎说了合成层方面的)
2. csrf 相关
3. 除了虚拟列表和 MutationObserver 做列表优化,你还有什么方法呢?(让后端做分页请求,前端滑到底部时,请求接口;时间分片)
4. 面试后续反馈,以及此次面试评价