22届工作6个月左右(od)-前端面经

机考

(三道题都在攻略中有原题,但是我只练习过会议室占用时间那道)

三道编程题,限时两个半小时,一般是ACM模式,但是我第三题是核心代码模式。分值为100 100 200,前两题提交前都可以反复自测运行,检验通过测试用例比例。得分就是通过比例乘以题目分值,两道100分值的题提交后才可以做200分的题,所以建议根据需要达到的分数合理分配时间。大概提前了一个小时左右交卷。我抽到的是C卷,似乎那段时期抽到C卷几率比较高。我大概准备了1个月左右,看个人实际情况分配准备时间,建议多刷栗栗姐的参考,一般都是有原题的。第二天栗栗姐反馈机考分数。

智能成绩表

将学生按考试总分或单科分数进行排名,成绩相同的按照学生姓名字典顺序排序

堆内存申请

总空间为100字节的堆,紧接着前一块已使用内存,分配空间足够且最接近申请大小的空闲内存,输出申请到内存的偏移

会议室占用时间段

若干个会议共用一个会议室,数组表示各个会议的开始时间和结束时间,计算会议室占用时间段

综测

好像不限时,别人建议25min左右,时间长一些应该也没事。栗栗姐会给一些相关的材料,建议还是稍微重视一下,提前看看栗栗姐给的攻略,这个挂了冷冻期好像还挺长的。回答时不必太实诚了,建议把几种正向性格的优先级排个序,因为会同时出现三个正向性格,让你分别选最认同和最不认同的情况,也注意前后问题选择的一致性。

Hr面(20 min)

Hr面前先提交了相关材料,栗栗姐会先和你沟通,按要求准备好面试材料。

一般来说好像先是一二面后,才是hr面。估计可能是因为我有异常情况,所以先安排了hr面,主要问了我的gap原因,以及期望薪资。如果有同样有gap的话,建议提前准备一下如何回答。

一面(1 h)

不久后就预约了一面,一面是用人部门的面试官,部门没有前端的面试官,所以没有问我前端八股,不过得准备好项目经历和计算机网络相关的知识。

首先是手撕代码。有长度为k的滑动窗口从整数数组nums最左侧移动到最右侧,每次移动一位,返回滑动窗口中的最小值。

自我介绍,介绍一下做过的项目,主要负责了哪些部分,日常开发工作的流程

碰到过最大的困难是什么,怎么解决的

学过哪些语言,对操作系统,计算机网络有了解吗

知道有哪些常用的网络协议,分别有什么作用

TCP和UDP的区别是什么

说一说TCP 的三次握手,以及为什么它是可靠的

说一说OSI 七层模型

二面(1 h)

二面面试官在开会,等待了大概半个多小时。上来先是自我介绍,聊了聊工作和项目经历,面试官根据经历问了一些项目场景和相关八股,会追着问,直到答不上来为止,稍微有点难顶。。。

Es6有哪些新增内容

对Set、Map两种数据结构的理解

react和vue有什么相同和区别

TypeScript是什么,对 TypeScript 的理解,与 JavaScript 的区别

项目中怎么使用TypeScript的

什么是面向对象程序设计

说说知道哪些排序,哪些排序算法是稳定的

队列和栈有什么区别

如果数据量很大,有什么优化查询方法,你在项目中使用了哪些优化方法

什么是索引,为什么引入索引

数据库中的分组查询语法

如何理解TCP/IP协议

Https和Http有什么区别

最后的环节是手撕代码:lc997 找到小镇的法官

综面(主管面 40min)

最后是主管面,没问技术方面的,主要是聊了聊想法和部门业务。

自我介绍

家庭情况

GAP的原因,期间做了什么

对华为文化的理解

对OD的看法

对加班的看法

职业规划

如果工作中碰到困难怎么解决

如何保证自己写出可靠的代码

期望薪资,为什么觉得你配得上这个薪资

反问环节:部门业务,入职后的职责

总结

建议机试好好准备一下,根据栗栗姐的攻略,分类刷一刷,题型基本差不多,而且也有一定概率碰到原题。基础不太好的话,裸考还是挺有难度的。一二面的手撕代码确实没怎么为难,关键还是机试。项目和八股也适当准备一下,因为我只有一年左右的经验,不会问得太深入,但基础问题要答好,会影响定级。有事及时和hr沟通,各个环节栗栗姐都有相关攻略,反馈也非常及时。总历时大概3个月,包括准备1个月的刷题和放假,时间还是有点长的,期间栗栗姐一直在及时跟进,联系部门,催部门进度,感谢栗栗姐的帮助。

全部评论

相关推荐

只有一轮技术面。1、ES6中常用的语法let、coonst关键字,扩展操作符,解构赋值,Map和Set,模块化2、数组能解构吗(1)解构一下const a = [1,2,3],如何拿到第一个元素const [first,second,third] = a; console.log(first)(2)解构一下const a = [1,.....],后面有多少个元素我并不知道const [first,...rest] = a; console.log(...rest)3、对象的合并最开始说了concat(但这个是数组的),然后说了bind,忘记说all了,面试官提示也可以用解构赋值4、Map(1)Map的应用场景?说了集合的概念,无重复值(2)Map的key可以放什么类型,Symbol这些可以放吗?可以的,Map的key可以放任意类型,普通对象的键值对当中只能是字符串和Symbol5、Set(1)Set的应用场景?说感觉不是很了解。面试官说了可以用在数组去重,瞬间想起来了(2)Set的数组去重返回的是一个标准的Array吗?不是,可以用Array.from或者扩展运算符转换成Array6、CSS中用flex布局处理垂直水平居中(1)已知内容大小用align-items和justify-content都改成center(2)未知内容大小,用transform有什么写法?没有用transform来处理过,不会7、(场景题)页面中点击div,使其从左边移到右边,可以用css动画效果,还有transform修改,还有margin。从性能的角度来看,用哪一个好一点。我说用CSS动画更好,也就是transition。(面试官说不太对,但是具体是哪一个也没太听懂)8、(场景题)假如说我现在有一个业务,要在业务代码里面去修改Ant-Design的某一个组件里面的classname的某些样式,我应该怎么写才能操作到其内部。(怎么修改到三方UI框架里面的样式?)用 :global。(可以通过 :global 选择器来覆盖 Ant Design 组件内部的样式。这种方法允许你在局部作用域的 CSS 中应用全局样式规则,覆盖第三方库中的样式。)9、React(1)(场景题)我清除我localstorage里面的某一个键值对,组件卸载的时候,我怎么能知道组件卸载了。(问的一脸懵,但是我猜应该是跟useEffevt相关)在useEffect中写一个return方法,在里面执行自己的业务逻辑。(2)如果想要计算某些东西,用什么hook比较合适一点。我要计算的这个值不是一直在变的,意味着我要缓存。(缓存就跟useMemo有关)缓存的话我用的是useMemo,缓存一些数据,只有当依赖项改变的时候,才会重新进行计算,(3)有一个和useMemo很像的东西,就是React.Memo,有了解过吗只听说过,应该比较的不是某一个参数,而是比较的传入的props。面试官修正我的话:其实路是对的,它是来缓存这个组件更新还是不更新,这就是用memo来控制的,如果有个性化的东西就在props中的方法写,给你新的props和旧的props来写你的校验的逻辑。(4)useCallback用来优化函数性能,比如说它可以缓存一个函数的实例,可以避免每次渲染页面的时候不会再次创建同一个函数。(5)状态管理器用过吗用过Redux。10、最近在项目中有没有关于性能优化的。说了最近用useMemo缓存数据的部分。11、反问(1)后面还有几轮技术面(2)部门负责的主要业务总结:面试官还是很好的,一直在引导我说,问的也都不是特别深入,薄弱点就是在css中transform和less预处理。整个面试只有30min,还是很友好的,毕竟只是实习面试。后续还有几个实习面试的,多多准备准备!#前端面经##前端实习准备#
查看13道真题和解析
点赞 评论 收藏
分享
1 10 评论
分享
牛客网
牛客企业服务