面经一:
(1)自我介绍,项目介绍;
(2)项目中用了Iframe,讲一下CSP(Content-Security-Policy);
(3)项目中为什么要用Pinia不用Vuex;
(4)场景题:一个页面点击任何一个按钮,触发请求。这里考察事件捕获。
(5)追问:如果我想取消掉呢?(这里一方面面试官那边信号不好没听清,也没理解是取消请求还是取消点击事件还是取消别的)
(6)说一下事件循环,什么是宏任务,什么是微任务;
(7)Echarts怎么设置图例,怎么将折线图变为曲线图,怎么修改图的位置;
(8)怎么把装饰器转为ES5的写法(之前只了解Python有装饰器,JS这块第一次听到);
(9)场景题:一个组件被很多组件复用,怎么设置父子组件、或者祖孙组件通讯?用Vuex会有什么问题?
(10)反问:技术栈?有什么需要提升的地方?多久有结果?
总结:邮件上写了1个小时面试时间,结果只面了半个小时。很多问题都没回答上来,大概率是凉了。收拾下心情,准备其他公司的笔试面试了。
面经二:
(1)自我介绍
(2)说下实习做的内容
(3)实习的收获?
(4)有自己感兴趣的方向吗?
(5)平时怎么去接触到新技术的?
(6)有自己目前在维护的项目吗?
(7)做的项目有遇到什么难点吗?
(8)国际化做了哪方面的事情?
(9)怎么做多行文本溢出隐藏?如果浏览器不支持这个css属性呢?
(10)代码高亮是怎么做的?
(11)了解过代码高亮原理吗?我直接扯到babel的原理?词法分析,语义分析,ast,转换,生成,差不多就是跟编译原理相关的
(12)怎么去提高脚本的加载速度?
(13)如果要点击一个按钮去加载语言包,怎么做?我说了import()动态导入,如果浏览器不支持import()呢?讲了下import ()原理,其实就是创建个script脚本插入到页面中
(14)你有用过ahooks和自定义hook,说说?
(15)你刚才说到了用useLatest处理闭包?了解过怎么实现吗?useRef
(16)说说react hook的限制?我还扯了下hooks源码,原理
(17)说说了解的react性能优化手段?
(18)说下项目中有哪些封装的比较复杂的组件?讲了可滑动的进度条组件和用better-scroll封装的滚动容器。
(19)怎么实现一个轮播图?还说下无缝滚动原理
(20)你用了虚拟列表,知道实现原理吗? 讲了列表项定高的实现思路:定位,算起始索引、终止索引,滚动事件,requestAnimationFrame,虚拟列表快速滚动会产生白屏,怎么处理?我说了骨架屏,还有其他方案吗?不会了
(21)知道不定高的虚拟列表实现原理吗?磕磕巴巴说了一点,然后直接说不会
(22)在项目中做过哪些性能优化?
(23)怎么去减少回流重绘?批量操作样式,批量操作dom,documentFragment,css硬件加速,will-changes...,还有嘛?不知道了
(24)说说分析项目的异常的思路?
(25)有去优化或者了解过项目打包相关的吗?
反问:
面试表现,哪方面需要学习的,建议?对一些问题可以发散下,可以学学canvas,前端基础不错
做的业务,技术栈?主要都是一些办公类的产品,大项目基本上react,小点项目会用vue
大概什么时候出结果?这几天,也可以去问问hr