首页 > 字节Data实习前端123+hr
头像
prozacLi
编辑于 2020-04-01 14:28
+ 关注

字节Data实习前端123+hr

第一次在牛客上发面经,我自己目前是研二在读,然后找的是字节的前端实习岗

目前的情况是上周四的三面+hr面,说是一周之内通知,现在emm官网状态也没有变化,等得好心累,可能是比较菜还在池子里吧555。原来说接了oc再发面经,想想还是直接发了吧,在牛客上看了很多面经,也认识了一位非常好的阿里的学长!这个平台真的帮助了我很多(顺便表扬下后台处理bug的效率,我前几天才反馈的bug一天就修复了,非常nice)

我一面二面一起面的,然后当天面完约的三面时间,中间隔了几天我面别的去了,自我感觉12面差了点,3面和hr面得非常愉快

顺便推荐下我的项目 https://luvsunlight.github.io/js-offer-algo/#/README是我用JS写的剑指offer题解,上周六大部分面试都面完了开始整理的,目前写了一半的题目,剩下的争取本周写完,欢迎star,fork和pr呀

1面+2面

1面的面试官非常年轻帅气,感觉跟字节跳动的公司形象很吻合

* Vue中的响应式机制是怎么做的
* defineProperty可以定义哪些属性(configurable, writable, value, enumerable, get, set)
* Vue3.0里面的响应式你知道是什么吗,有什么优点
* Vue3.0里面还有什么其他特性
* 一个ul里面很多li,应该怎么处理事件(委托)
* 委托有什么好处
* 为什么vue里面绑定事件不是用委托来做的?
* 如果Vue里面有很多数据,数据量很大,你应该怎么做优化
* 如果我们现在有一个需求,让一个ul里每隔一段时间都在所有子元素的头里新增一系列新元素,我们应该怎么做?
* 微信红包的策略(没答好,这个算法比较开放吧,知乎上有不少种方案,主要还是看你想设计成什么分布,我一开始想得太简单了,面试官说我这样的分配方***导致第一个人大概率拿得最多,我当时概率论没反应过来,但还是顺着他的意思说那shuffle一下就好了,他笑了一下然后让我手写一下shuffle)
* 手写shuffle函数
* 手写Promise.all(这里犯了一个小错误,我把all写成Promise的原型对象的方法了,面试官提醒我说这就是类的方法不是实例方法)
* flex实现三栏布局
* 你对前端工程化的理解,你觉得你做的东西是前端工程化吗
* ------- 等待15min后的二面 ---------
* 说一下你了解的网络协议
* xss和csrf怎么防范
* DNS是什么
* DNS有几种类型你知道吗(不知道)
* 应用程序和进程的关系
* 进程和线程的关系
* 为什么一个线程崩溃,然后一个进程里的其他线程就会崩溃(不知道)
* 一个byte有几个bit
* 一个byte可以表达的字符类型有多少种
* unicode了解吗
* 一个unicode字符占几个字节
* unicode有几种编码类型
* 说一下js垃圾回收机制
* 说一下浏览器加载页面的机制
* js里面有哪些基础类型
* 怎么判断类型
* 为什么不能用对象自己的toString方法(不是所有对象都有toString方法,而且有的对象的toString方法可能会被改写)
* 'www.bytedance.com' 字符串反转为 'com.bytedance.www',要求原地排序(这个题是剑指offer原题哈,我当时剑指offer还没刷到这来,先给出了栈的非原地排序的解法,然后想了一会给出了一个原地排序的设计,没有手撕,跟面试官说了一下思路,他说ok)

3面+hr面

* 三面是一个非常年轻的面试官(感觉比二面的还年轻是怎么回事!),态度也很好!非常nice,自我介绍完了之后他让我做一道题目(我还蛮怕是很难的算法题)
* 题目是一个秒杀的页面,看我怎么去设计,要求实现的功能是屏幕上显示目前还有多久到达目标时间,然后是抢购按钮
* 我先把我对这个问题的描述说了一遍,看是不是我理解的这个意思,然后我说那我再说一下我会怎么设计(面试官笑了一下,说原来你刚才那个不是你的设计思路啊),我说核心就是要以一定的时间间隔段去实时更新DOM显示,首先排除while循环,这样会卡死UI渲染,然后我的技术选型是setInterval,时间间隔为1s,当然raf也可以,而且raf更好,然后就是一些简单的设计,要注意定时器要回收,接着手撕了一下
* 然后面试官说你整体的思路是对的,但是你用new Date是不是会有一个问题,我说我只能想到setInterval没有那么准,他说这个也是,但不是重点,然后跟我说了一下new Date()是返回系统的时间,但是如果用户修改系统的时间应该怎么办?我在想有没有什么其他可以获取系统时间的API,后来面试官提醒说可以不用局限于前端,然后我说那就是调用服务或者向服务器发送请求
* 然后面试官接着问,如果给你一个getServerAPI用来获取目前的时间,你觉得还有什么问题没有,因为getServerAPI是一个异步的(这里我还没有意识到,唉异步编程的思想真的要融入骨子里),然后问我应该怎么做,我说用Promise.race来做,如果1s内没有返回的话就默认调用上一次数据的更新值,他说这样还是不太好,比如用户这边可以降低网速,让我们每一次请求时网速都很差,你应该怎么办呢,我就说那就做一下实时性和安全性的权衡,面试官非常nice,他先对我整体的思路表示肯定,然后建议我自己之后可以去看一下淘宝这些电商是怎么设计这种逻辑的,让我不要放松了对简单业务场景的考量
* 我自己后来想了一下,页面逻辑有两个,一个是时间的实时显示,一个是按钮状态的改变,如果要做到实时性和安全性的权衡,我觉得可以将这两个业务解耦,页面的实时显示可以通过竞态的机制完成(即如果超时的话可以考虑读取本地时间或者在上一次网络请求的数据里加上一个迭代值),这个不要紧即使用户修改了本地时间也没有影响,但是对于按钮的disabled值一定要控制好,这个值初始化为false,然后只有从服务器获取数据才可以更改状态
* 当然服务端也可以对请求的时间做出限制,但是为了防止不必要的爬虫,减轻服务器的压力,最好在前端也作出对应的限制
* 只是对按钮的disabled做出限制还不够完整,因为这个通过浏览器端也很容易hack,最好是在btn的click里加入额外的判断(这个一定要从服务端获取数据才可以确认,从逻辑上也很好理解,网速不好自然抢不到东西,这个不需要对本地时间做妥协)
* 有没有实习经历(没有,导师抓得比较严)
* 说一下你觉得最有挑战的一个项目,简单和他介绍一下项目难点(WebGL本身,双缓冲,随机数)
* 然后就是问我最近有没有什么学习计划,我就说了一下一年的打算,比如学Node,自己写一个简单的MVVM框架,然后说了一下自己准备怎么设计这个框架,比如可能会把模板编译先交给库来做,因为可能还要自己写正则和vdom的设计会很麻烦,然后学electron
* 最后他说他这边没有问题了,让我准备一下等下的面试
* -------hr面-------
* 过了几分钟就迎来了hr面,从来没面过hr面,有点紧张,毕竟hr面也是会刷人的
* 我是哪里人
* 能不能描述一下前面三面你的面试过程和感受
* 向hr介绍一下我简历里的一个项目
* 介绍一个你觉得最失败的经历(这个部分说清楚的同时,要表现出自己有对问题的反思)
* 你大概什么时候可以过来实习(6-8月)
* 9月可以吗,我说大概可以,但是10月可能有论文开题,要和导师商量一下
* 高考考了多少分,为什么会选择这个专业(调剂,但是这个专业真的也对我选择目前这个职业有了很大的帮助)
* 研究生是保研吗(没有,拿了夏令营但是保本校差一名,最后还是考的)
* 为什么会选择前端(因为热爱,真的热爱,有技术积淀就有技术自信,有技术自信就会更加热爱)
* 未来的职业规划(先夯实基础,就业后根据业务内容做细分领域的深耕,之后的话可能会做工具链或者其他更高层面的考量)
* 回武汉了没(学校不让回)
* 毕业有没有什么要求,论文写得怎么样了
* 你或者说你家里人对城市有没有什么喜欢,我说我个人偏向杭州,所以我投的也是杭州,当然北京上海也都很好,我家人对我的选择不做干涉
* 让我提问,我问了一下是不是最终面,她笑着说是,然后我问了一下部门的业务,她说是核心业务部,是负责广告业务的
* 最后表示没有问题了,并且表示了感谢

4面下来,我感觉字节的面试体验还是非常好的,一方面是流程非常有效率,另一方面是面试过程中面试官一直有在给你反馈以及和你互动(我一面的时候紧张面试官还给我开玩笑让我放松下来),我觉得这是一个好的面试体验的关键,举一个例子,我在回答问题时如果遇到了自己擅长的领域会比较喜欢展开来谈,字节的面试官会跟我说如果是平时的面试我们可以谈很久,但是现在因为时间有限让我体谅一下,但是有的面试官会直接粗暴打断并且开始下一个问题,然后就是有的面试官你回答完问题他一点反馈也没有直接机械性地开始下一个问题,你是技术大牛还好,像我这种小白遇到了这种面试官心态就会受到打击,严重的还会影响到后续面试的状态

虽然知道自己大概率泡在池子里了,但还是许愿一下吧,,来自菜🐔的挣扎


更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐