群核信息前端工程师社招四面面经

一面

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、对薪资和级别有什么期望?

#面经##社招##群核信息##前端工程师#
全部评论
挺全的  要是有一些讲解就更好了
点赞 回复 分享
发布于 2020-12-26 23:16

相关推荐

03-15 20:26
已编辑
电子科技大学 C++
T3题面:给一个3e5数组,每次询问长度为len的子数组乘积的和,如果子数组乘积>1e9,则视为0.赛后一分钟想出来了,比赛时打了个暴力+线段树注意到1e9大约是2^30, 因此len长度如果>30就直接输出0,30以内做一个记忆化就行,复杂度O(30*n)感觉是以前比赛做过的题,忘了怎么做了。。。---upd: 忘了数据范围了,如果有0,1的话那这样也不行
blueswiller:给出一个做法,刚刚才想到,应该没问题,时间复杂度为 O(max(30n, nlogn)): 1. 根据 0 切分数组。2. 现在问题转化为>=1 的情况,我们首先维护每一个数前一个 > 1 的数的位置,同时维护一个长度的差分数组,初始值全为 0。3. 我们从每一个数 i 开始向前跳,至多跳 30 次,维护这个过程中的乘积,于是得到 30 个区间加和。举例:假设从 j1 跳到 j2 ,相当于对查询长度 (i- j1 + 1) 至 (i - j2) 贡献 a_i * ... * a_j1。4. 对于所有区间加和,我们采用差分数组结合树状数组对其进行维护,由于长度至多为 n ,树状数组构建的复杂度为 O(nlogn),于是,构建阶段的复杂度为 O(max(30n, nlogn))。在线单次查询的复杂度为树状数组查询的复杂度 O(logn)。
投递淘天集团等公司10个岗位 > 笔试
点赞 评论 收藏
分享
评论
1
22
分享

创作者周榜

更多
牛客网
牛客企业服务