快手前端实习 一二三面(已OC)
快手前端日常实习,base北京,数据平台部。三轮技术面+HR面,前后一共耗时6天,已成功拿下offer,准备休学run北京了。
先总体点评一下面试体验,面试体验绝对算是大厂中很优秀的了,面试过程用的是自研的轻雀SaaS平台,三轮面试面试官都很和蔼,而且面带微笑很尊重人,面试时候有时候遇到卡壳的地方也会耐心的引导你。
一面(9.14)
1. 输出结果
setTimeout(() => { console.log(1); }, 0); console.log(2); (new Promise((resolve) => { console.log(3); })).then(() => { console.log(4); }); console.log(5);2.输出结果
var name = '123'; var obj = { name: '456', getName: function () { function printName() { console.log(this.name); } printName(); } } obj.getName();追问:如何输出456? 两种方式
3.输出结果
function Foo() { this.a = 1; return { a: 2, b: 3 } } Foo.prototype.a = 6; Foo.prototype.b = 7; Foo.prototype.c = 8; var o = new Foo(); console.log(o.a); console.log(o.b); console.log(o.c);追问:如果删除return 返回什么结果?
4. var let const 区别?
5. 场景题 :从级联选择器中,找出当前项的元数据,并完善方法filterDataFromCascader
const originData = [{ "field": "shandong", "displayName": "山东", "category": 2, "children": [ { "field": "weihai", "displayName": "威海", "category": 2, }, { "field": "qingdao", "displayName": "青岛", "category": 2, } ], }]; // 示例 key: [shandong, qingdao]; // 要求找出传入key最后一层的元数据(层数不确定) const filterDataFromCascader = () => {}
6.算法:最长回文子串
7. 场景题:有一个menu,想进入页面的时候就定位到上次最后进入的那一个,怎么做?
8. 如何统计当前网页出现过多少个html标签?
9. DNS是怎么查询的? 迭代查询和递归查询过程?
10. 浏览器进程线程
11. 回流和重绘
12. 属性的隐藏显示有什么方法?有什么区别?
13. 说一下HTTP缓存?有哪些字段?协商缓存的ETag是怎么生成的?
14. 完善三栏布局
<style> <div class="container"> <header></header> <div class="body"></div> <footer></footer> </div> <style> .container { } header { height: 20rem; } .body { } footer { height: 35rem; } </style>15. flex是哪些属性的简写?默认值是什么?
16.还有一些常规的八股,比较简单,不记得了。。。。
反问:
1. 公司对于实习生的要求?
2. 对于我的面试评价以及有什么学习上的建议?
3. 工作时间安排?
然后就是愉快的聊天环节,面试官对我表现挺满意,也给我详细介绍了一下部门的三大业务主线,还说我去的话应该是去协助开发流量埋点监控的系统,大数据平台支持相关。(这一刻我感觉想为快手卖命)
晚上9点多HR打来电话约了二面
1. 公司对于实习生的要求?
2. 对于我的面试评价以及有什么学习上的建议?
3. 工作时间安排?
然后就是愉快的聊天环节,面试官对我表现挺满意,也给我详细介绍了一下部门的三大业务主线,还说我去的话应该是去协助开发流量埋点监控的系统,大数据平台支持相关。(这一刻我感觉想为快手卖命)
晚上9点多HR打来电话约了二面
二面(9.15)
1. 自我介绍 2. 项目介绍?项目亮点?项目深挖
3. 对Promise的理解
4. 手撕:手写promise.race
5. JS如何判断类型?
6. 数组常用API?了解reduce吗?
7. 手撕:用reduce写一个数组拍平,拍平n层
8. 手撕:带pid的数组转树
9. Vue框架相关八股文,时间隔太久忘记了。。。
晚上9点多HR打来电话约了三面
三面(9.16)
1.输出
Function.prototype.a = () => alert(1); Object.prototype.b = () => alert(2); function A() {}; var a = new A(); a.a(); a.b();追问1:描述此题中相关的原型和原型链?
追问2:如果A中return一个number类型的数字,输出结果有什么不同?
2.算法:字符串匹配
indexOf 实现
W="ABCDABD"
S="ABC ABCDAB ABCDABCDABDE"
直接手写了kmp,其实面试官就是想问暴力匹配怎么写。。。。 3.手撕:发布订阅模式,实现一个EventBus类,具备on、off、once、emit方法
4. 场景题手撕:基于 Vue 或 React 实现一个弹窗,
1、弹窗带有半透明的全屏遮罩;
2、弹窗可以点击遮罩和关闭按钮隐藏,也可以通过设置 visible 的 prop 隐藏;
3、弹窗可以设置 title 和主内容;
4、弹窗打开和关闭时可以 emit 事件 open 和 close;
5、场景弹窗显示时可以带动画(加分项);
<my-dialog>
<div>
主内容
</div>
</my-dialog>
5. 场景题:后端传给你10w条数据,前端怎么去处理? 6. 说一下虚拟滚动实现的思路? 这个不太会。。。。。
7. React的常用hook?useEffect的作用?听说过useRef吗?
8. Vue中如何让属性失去响应式?
9. 描述一下Vue3中Composition API和Vue2的Option API的区别?Composition API有什么缺点或者使用过程中的踩坑?
10. 其他框架的八股不太记得了。。。
由于自己主技术栈是Vue,因此React没有问太多内容。
然后反问环节问了一下公司部门对于招聘的实习生的要求是什么,其实就是间接的试探一下对于我的评价,三面面试官对于我的算法手撕能力评价不错,听到这话大概率就稳了。
然后就是介绍BU的业务以及和我聊聊我的职业规划,还有就是项目中遇到困难怎么解决brbrbrbr,估计就是在考核我的性格以及是否具有抗压能力吧....
------------------------------------------------------------------------------------------------------------------------
然后就是一个漫长的周末,,,,,
HR面(9.19)
你能想到的都问了,都是常见的HR面套路,就不多说了。
9.20 Offer到手,6天的快手面试顺利结束,开始准备办理休学手续,找理由拒掉之前已经拿到的两个offer,准备去北京入职啦~
#前端开发实习##快手面试##快手面经##日常实习##快手前端面试#