笔试:
都是些基础选择题,考察计算机网络,事件循环机制,闭包,this 这些。
一面:
三次握手和四次挥手详细介绍
TCP 有哪些手段保证可靠交付
URL 从输入到页面渲染全流程
如何预防中间人攻击
DNS 解析会出错吗,为什么
ES6 的 Set 内部实现
如何应对流量劫持
算法:top-K 问题,分成 top-1,top-2,top-K 三小问
二面:
跨域
webpack 的 plugins 和 loaders 的实现原理
vue 和 react 谈谈区别和选型考虑
webpack 如何优化编译速度
事件循环机制,node 和浏览器的事件循环机制区别
三面:
单元测试编写有哪些原则
一个大型项目如何分配前端开发的工作
怼项目
同样都是基础题,注意有两道算法:柯里化通用实现和 two-sum 问题。
typescript 有什么好处
vue 项目中如何约束 rxjs 数据的类型
rxjs 高阶数据流定义,常用高阶数据流操作符
二三面:
围绕着我的简历问项目细节,侧重于 rxjs 和 typescript 这块内容。
JWT 优缺点
选择器优先级
基本数据类型
RxJS 冷热流区别
RxJS 调试方法
nginx 负载均衡配置
前端性能优化手段
针对 React 的性能优化手段
301 302 307 308 401 403
vue 的 nextTick 实现原理以及应用场景
vue 组件间通信
谈谈 XSS 防御,以及 Content-Security-Policy 细节
场景题:一个气球从右上角移动到中间,然后抖动,如何实现
场景题:一个关于外边距合并的高度计算
mobx-react 如何驱动 react 组件重渲染
forceUpdate 经历了哪些生命周期,子组件呢?
React key 场景题:列表使用 index 做 key,删除其中一个后,如何表现?
算法:实现 setter(obj, ‘a.b.c’ ,val)
RxJS 相对于其他状态管理方案的优势?
手写冒泡排序
JWT 细节,适用场景
方案题:不同前端技术栈的项目,如何实现一套通用组件方案?
ES6 特性
闭包和 this 一起谈谈
postcss 配置
Promise 内部实现原理
vuex, mobx, redux 各自的特点和区别
react 生命周期
各方面谈谈性能优化
serviceworker 如何保证离线缓存资源更新
virtual dom 有哪些好处
然后换了个有黑板的面试间,狂怼项目,各方面都问到了。
总监面,把刚才一黑板的项目架构图全部擦掉,再来谈一遍。
Vue3 proxy 解决了哪些问题?
Vue 响应式原理
发布订阅模式和观察者模式的异同
图片懒加载实现
css 垂直居中
CI/CD 流程
谈谈性能优化
key 的作用
hooks
vue 和 react 区别,选型考虑
canvas 优化绘制性能
webpack 性能优化手段
事件循环
如何解决同步调用代码耗时太高的问题
手写 Promise 实现
场景题:如何实现登录功能
聊项目
Promise 实现原理
性能优化
vuex 数据流动过程
谈谈 css 预处理器机制
算法:Promise 串行
CI/CD 整体流程
SSR 对性能优化的提升在哪里
react 和 vue 更新机制的区别
Vue3 proxy 的优劣
symbol 应用
深拷贝
dns 解析流程
vue 和 react 选型和比较
ssr 优缺点
贝塞尔曲线
Vue3 proxy 优缺点
Vue 组件间通信
ssr 性能优化,node 中间层细节处理
这一面比较特别,和之前的面试都不太一样,是知乎早已关注很久的之昊老师面的。
之前的面试大概是属于主导权在我这边,面试官倾听的比较多,搭配上少量提问。而这一面基本全程处于被之昊老师教育加吊打的状态,感觉之昊老师说的话比我还多了,针对问出的每个点会在我回答的基础上做更多的延伸说明,没有局限到具体的技术方案或者细节代码,更多的是谈到了一些方法论或者说作为一个优秀的开发者面对一些问题时比编码更高的思维层面上的处理方式。收获很大,聊到了很多之前工作中都没有考虑过的东西。这就是大佬的世界吗.jpg。
如何编写 loaders 和 plugins
webpack 热更新原理
vue 和 react 组件通信
谈谈 eleme 框架源码
谈谈项目
个人兴趣爱好
笔试题
第一题:将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
第二题:
说明:实现一个方法,用于比较两个版本号(version1、version2) 如果version1 > version2,返回1;如果version1 < version2,返回-1,其他情况返回0 版本号规则x.y.z,xyz均为大于等于0的整数,至少有x位 示例: compareVersion(‘0.1’, ‘1.1.1’); // 返回-1 compareVersion(‘13.37’, '1.2 '); // 返回1 compareVersion(‘1.1’, ‘1.1.0’); // 返回0
第三题:找到字符串中最大回文子串,例如 ‘3434356’ 的最长回文子串是 ‘34343’。回文是指对称的字符串,如:‘abccba’。找到字符串中最大回文子串
面试题
我做一个搜索,实时的去进行筛选数据,做一个简单的防抖,然后如何保证我的请求回来的结果是我最后一次的查询条件的结果
一百个异步请求,如何捕捉请求失败的有哪些,如何获取最后一个请求结果?