当前位置: 首页 > 面试经验 >

快手前端实习 一二三面(已OC)

优质
小牛编辑
87浏览
2023-03-28

快手前端实习 一二三面(已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打来电话约了二面

二面(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,准备去北京入职啦~
#前端开发实习##快手面试##快手面经##日常实习##快手前端面试#
 类似资料: