# 快手一面(08.21)
1. 说一说 this
2. 说一说 call/apply/bind
3. 手写 call
4. 说一说 flex 布局
5. 介绍一下 flex: 1 代表了什么以及它的作用是什么
6. 实现三列布局,两侧固定,中间自适应
7. 手写数组的 flat,可以控制扁平化的层级数
8. 手写 retry 函数,参数为 fn、重试最大次数和重试间隔
9. 手写一个回溯算法,实现全排列
10. 描述下原型链
11. 手写 new
12. 介绍 HTTP 与 TCP 协议
13. 描述下 EventLoop 执行过程
14. webpack 中的 loader 和 plugin 的区别
15. 输入 URL 到页面呈现的过程
16. 优化页面加载时间的方法
# 快手二面(08.24)
1. 手写一个递归的算法
2. 手写一个 bfs 的算法
3. 写一写你知道的数组的方法
4. 介绍一下 at、foreach、map 方法
5. 开放题:介绍让元素在页面上消失的方法
6. 开放题:页面中如果打开一个新的页面,那么你有什么方法能获取上一个页面传递的数据
7. 你知道请求头怎么传递数据嘛
8. 你怎么对一个请求做处理,从数据发送到接受返回数据的处理
9. 你怎么处理 304 状态码
10. 介绍一下浏览的强缓存与协商缓存
11. 介绍一下你有什么想分享的项目吗?(我说了浏览器插件开发,electron 开发、百度的项目,没有说简历上写的项目,要说为什么,因为那几个项目我说了好多遍了,不想再说了)
12. 介绍一下你做过哪些浏览器插件
13. 浏览器插件能提供平时开发之外的功能吗
14. 和面试官进行了一下浏览器插件的技术交流(因为面试官也写过)
15. 你开发完 electron 后怎么做离线处理,比如通知用户应用更新了
16. 介绍一下百度的项目
17. 就百度的项目问了一些处理细节的问题,比如前端页面如何展示(react),如何获取数据(自己写 nodejs 接口),后端入库设计方案、单任务的异常处理、如何确定所有任务都已完成等等
18. 反问