字节跳动前端实习面经

一面

讲项目

  • 讲一下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”。说实话确实基础不行,不过这编程题目确实太简单了也没有发挥空间,把自己的缺点暴露了很多。

三面

应该是一个leader,思路比较清晰,分析能力很强 我以为会问技术的,结果全在聊天。

  • 为什么去交流,以后怎么规划自己方向blabla
  • 怼一个当初水论文的一个项目,问我AI和Blockchain和Edge Computing的看法,问项目细节的很深。。
  • 怼一个爬paper的reader项目。

四面HR

  • 一些常规问题

总体感觉是不难,内容也和其他小伙伴不同,不知道是不是看我是本科生。