部门是视频云北京。
视频云部门的前端是偏向于多媒体前端工程师,问的内容比较偏向多媒体,此面经个人认为对于常规的前端工程师来讲不具有特别大的参考性。
在经历了技术中台四面结束后,被视频云部门捞了。
一面
- this 指向问题,window.name 是什么及作用;
- 设计一个 Menu 组件,怎么实现嵌套;
- webRTC 的连接过程;
- webSocket 和 P2P 中 datachannel 的区别;
- IceEvent 是什么;
- 什么是 NAT 穿透,NAT 分为哪几种;
- datachannel 的底层是什么传输协议;
- UDP 协议和 TCP 协议区别,ARQ 协议是什么;
- UDP 协议和 TCP 协议的套接字分别是几元组;
- Vue3 和 Vue2 的区别;
- React 里面直接将内容设置到 DOM 上的方法;
- Express 的中间件原理和应用场景;
- cookie 的 http-only 和 same-site,cookie 怎么设置只在 https 时携带;
- cookie 和 session 的区别;
- 手写:最长回文子序列。
二面
- Vue3 和 Vue2 区别;
- https 的连接过程;
- sdp 协议的内容字段知道哪些;
- 对于双向 NAT 穿透失败的解决方案是什么;
- 看输出,一个关于作用域链的,一个关于闭包的;
- 介绍前端常用设计模式,实现一个观察者模式;
- http2.0 和 http1.1 的差别,了解 http3.0吗,了解 webtransport 吗;
- 强缓存和协商缓存的差别;
- 手写题:深拷贝 JSON;
- 介绍下 webRTC 的信令服务器;
- 除了 webRTC,还有处理过音视频的经验吗;
- webRTC 都支持哪些音视频格式;
三面
- 手写实现简单的 Vue3;
- 不按照 Vue3 源码,自己手写个简单的 Vue3;
- 手写实现 Redux,并特意强调不能按照源码,需要有自己的理解;
- 自己如何设计实现一个 CI/CD;
- 了解 Electron 吗,remote 方式有什么缺点,底层原理是什么;
- 优化浏览器的性能指标有哪些,如何监控 first contentful paint;
- nodejs 的底层原理是啥,如何通过 C++ 实现的;
- 有上线过大型项目吗;
- 大型项目如何实现多人协作;
一面面试官告诉我,视频云前端主要做 webRTC、webassembly、网页小游戏等内容,而这里面我只接触过 webRTC,因此很多时候面试官问的问题会偏向于此。
吐个槽,一面和二面体验极好,基本是和面试官交谈甚欢。三面就多少有点离谱了,上来就让手写个 Vue,写出来了后,又怼我写的太像源码了,怀疑我在背代码,紧接着又让我手写一个 Redux,写了一半被打断了,并继续怼我不要背代码。我只想说,谁会没事背源码,都是理解了思路去写的,讲真这次面试我感觉有被 pua 到。
虽然还没有通知我三面有没有过,但三面这种情况大概率都是凉的。
#秋招##前端工程师##字节跳动##面经#