鲨鱼哥
一面
自我介绍+基础偏广度考察+手写+简单的项目问题
二面
原理+深度考察+手写+深挖项目难点
三面
基本是围绕项目展开+个人离职原因+性格方面
一二面集合问题
- addEventListener默认是捕获还是冒泡?
 - 从输入一个URL地址到浏览器完成渲染的整个过程
 - Webpack优化
 - 手写实现一个寄生组合继承
 - 手写new
 - apply call bind 手写bind
 - 举出闭包实际场景运用的例子
 - ES6的let实现原理
 - 事件循环相关题目—必考
 - 浏览器缓存策略是怎样的(强缓存 协商缓存)具体是什么过程?
 - 浏览器从输入网址到页面展现的整个过程
 - https加密过程是怎样的
 - 304是什么意思 一般什么场景出现 强缓存返回什么状态码
 - http2.0做了哪些改进 3.0呢
 - css优先级是怎么计算的
 - position有哪些值,作用分别是什么
 - flex:1是什么组成的
 - 垂直水平居中
 
- 聊聊设计模式 在实际工作怎么使用
 - vue 组件通讯方式有哪些方法
 - Vue响应式原理
 - Vue nextTick原理
 - Vue diff原理
 - 手写Vue.extend
 - 路由原理 history和hash两种路由方式的最大区别是什么
 - ReplaceState和pushState能否触发 popSate事件
 - 实现一个promise.all 和race
 - tree shaking是什么,有什么作用,原理是什么 rollup
 - babel是什么,怎么做到的
 - webpack工作流程是怎样的
 - Webpack优化
 - 是否有写过webpack插件和loader 他们的区别
 - 渲染合成层是什么
 - css怎么开启硬件加速(GPU加速)
 - settimeout 模拟实现 setinterval
 - 手写发布订阅模式
 - 手写new
 - 手写防抖节流
 - 将虚拟 Dom 转化为真实 Dom(类似的递归题-必考)
 实现一个对象的 flatten 方法
列表转成树形结构
- 判断括号字符串是否有效{[(]}
 - 查找数组公共前缀
 - 字符串最长的不重复子串
 - 如何在字符串里面最快找到目标字符串的起始位置 如果是找字符串排列呢
 - 如何找到数组中第一个没出现的最小正整数 怎么优化
 - 怎么生成一个长度为n的不重复随机数组 能有几种方法 时间复杂度多少
 
三面集合问题(社招) 面评 薪资 定级 项目-逻辑题 算法题
- 为啥离职 中庸之道 客观
 - 项目 性能优化
 - 大文件上传
 - 如何设计性能监控系统
 - 如何设计前端错误上报系统
 - 如何设计渲染引擎
 - 怎么做code review
 - 为团队做了什么技术贡献
 - 团队管理相关
 - 个人性格 优缺点 爱好啥的
 
