字节跳动前端暑期实习面经(3+1面,已拿offer)
楼主大三本科,投的字节实习,大概复习了前端20天左右
之前有一个学校的水项目
一面(同事面)
讲项目
讲一下MVVM
响应式的原理讲一下Vue的状态控制
我说Vuex, 但是没了解过细节讲一下进程,线程,区别
这里我表现得比较菜,关键是一些系统资源的术语没表示清楚,确实操作系统复习的少讲一下进程间的通信
我上来讲了一大堆MPI的API,结果人家问的底层,我只说了个Linux的Pipe讲一下TCP,UDP,以及使用场景
使用场景UDP答得不好,面试官说可以用在延迟敏感的场景,比如视频,可以容忍一定的丢包讲一下Cookie是Http哪个字段
这里也混乱。主要是突击的时候把这个和Cache搞混了。讲一下localStorage, Session Storage
主要问localStorage和cookie的区别写代码(实现一个链表,增添查改)
这里暴露了不重视基础的一些习惯,忽略了一些边界情况,也维护了一个没啥用的tail
面试官一直提问找刺,最后他说ok写单例模式(表示真不知道是啥,面试官也没描述清楚,后来我引导他让我写了个简单的EventEmitter)
可能我blabla说的太多了,基本每个问题都会扯很多,一面花了快一个小时。。。
二面
面试官人很好,比较专业。没有预想的怼框架,非常基础。。
跨域以及解决方案
说了JsonP, CORS, Nginx 反向代理,最后面试官问了个postMessage,我说不了解。应该是用iframe做的。ES6你最喜欢的特性
我说let,箭头函数,Promise(应该不是es6的特性)。还说自己遇到过回调地狱,作用域bug,函数this指向问题等等。继承方式
归纳为三类。原型,构造,组合。其他大多是这三种的变种。Https 握手过程
非对称加密,对称加密,CA实现拖拽一个元素
说的是监听鼠标的mouseup和mousedown,并且在callback里用鼠标的position赋值给元素的position。
以上我都是展开了讲,滔滔不绝。。
- 广度优先搜索
- 给一个字符串,输出统计次数的object,按降序排列
2道编程题都不完美。Bfs死活不知道哪里出了个bug,不过面试官说思路对的。第六题也是理解错提意了,以为按出现次序排列,没沟通好,不过面试官说思路差不多。。。
总结:JS编一些小问题还是太少了,不熟悉String和Array的很多操作,复习的时候太注重一些面经的练习,基础打的不牢。总得来说不难。早知道我用Python写了,但是面试官说了句“最好用Js”。说实话确实基础不行,不过这编程题目确实太简单了也没有发挥空间,把自己的缺点暴露了很多。
应该是凉凉,2道这么简单的编程都没做好,不过面试官真的不错。要继续加油。
二面过了,明天马上三面,不知道三面会不会难很多。
三面
应该是一个leader,思路比较清晰,分析能力很强
我以为会问技术的,结果全在聊天。
为什么去交流,以后怎么规划自己方向blabla
怼一个当初水论文的一个项目,问我AI和Blockchain和Edge Computing的看法,问项目细节的很深。。
怼一个爬paper的reader项目。
其实怼这个词不太对,是很心平气和地在聊。结束5分钟后HR约了面试。总的感觉三面特别玄乎,一个技术也不问。而且我简历上有前端的实习项目,也不问,估计是故意去挑一些其他的点。
四面HR
一些常规问题
总体感觉是不难,内容也和其他小伙伴不同,不知道是不是看我是本科生。。
#字节跳动##前端工程师##实习##内推##面经#