群核信息前端工程师社招四面面经
一面
1、询问项目经历。怎么优化的?
2、你认为自己做的项目有什么值得的说道的地方吗?这里其实就是考察项目的亮点,可以说一些项目难点是如何解决的,或者介绍一些项目中用到的比较高级的技术。
3、React 事件机制;React 为什么要用合成事件?
4、聊聊 React 的 diff
5、React 优化
6、Ts 有什么优势?
7、type 和 interface 的区别
8、怎么理解闭包?
答:我的理解是 JavaScript 里面所有的函数都是闭包,因为有全局环境,所有的函数都可以访问全局变量。
9、节流怎么实现的?
10、class B 继承 class A 翻译成 es5 应该是什么样子?
二面
笔试:
1、实现一个 fill 函数,不能用循环;
2、用 ES5 实现私有变量;
3、考察盒子模型和 box-sizing 属性,判断元素的尺寸和颜色;
面试:
1、react 的基本原理;
2、聊一聊 React 的生命周期;
3、react 如何做性能优化?
4、redux 的重点概念;
5、聊一聊 hooks 怎么处理生命周期;
三面
1、项目里面的性能优化是如何做的?
2、class 组件里面如何做性能优化?
3、实现一个 Typescript 里的 Pick;
4、算法题:怎么判断单链表相交?
5、算法题,怎么找到第一个相交的节点。
思路:同时遍历两个链表到尾部,同时记录两个链表的长度。若两个链表最后的一个节点相同,则两个链表相交。有两个链表的长度后,我们就可以知道哪个链表长,设较长的链表长度为len1,短的链表长度为len2。则先让较长的链表向后移动(len1-len2)个长度。然后开始从当前位置同时遍历两个链表,当遍历到的链表的节点相同时,则这个节点就是第一个相交的节点。
5、手写 Promise.all;
6、手写并发;
四面
1、你看过开源库的源码吗?
2、聊聊 React 的源码,把你记得起的讲一讲。
3、FiberNode 有哪些属性?
4、stadeNode 有什么用?
5、你觉得你在公司人缘怎么样?
6、你觉得你为你们小组做了什么贡献?
7、为什么要离职?
8、除了我们公司还投了其他公司吗?
9、对薪资和级别有什么期望?
#面经##社招##群核信息##前端工程师#