2023年中大厂面试经历分享,很可惜,但是没关系🙁🙁🙁
已经好久没有面试了,突然想起来自己曾经有面试过几家公司,那就分享一下这些面经吧,也算是积攒一下人品了。
接下来的这些面经里面全是回忆版本的,而且有些面经是我之前已经写过文章了,那我就不贴链接引流了,有需要的可以自行查看之前发布的文章。
CSS
css 的没有啥特别的点,因为我不太会 css,所以问到我的时候我就说不太懂 css 了,后面也就没有怎么问了。印象中记得就两题:
- 如何实现两栏宽度固定,中间响应式
- 回流和重排
JS
js 这边的话大多数都是一些常见的八股文,字节来了一个手写体,要求写一个寄生式组合继承,核心代码也就三行,我没写出来 gg。
- esm 和 cjs,cjs 缓存,缓存在哪
- new 的过程
- cookie 和 localstorage 的区别,既然有了 cookie 为什么还要 localStorage?
- 垃圾回收
- 执行上下文和作用域
- 浏览器跨标签页通信的方式都有什么
- worker
js 这边的话总体来说不会很难,难就难在手写这边。建议多看看红宝书、你不知道的 JavaScript 还有官网。看完这些基本就能应付了。
React
React 这边的话没问我啥,不知道啥情况吧,源码的问题都是我主动引导的,很少面试官主动问我,不知道是不是我的简历上面的原因。如果感兴趣的话,可以看看我 React 相关的文章,看懂这些基本就能应付面试了。如果你用 React 有一段时间了,且 js 基础功底好,那么我非常建议你读一读 React 源码,里面的一些设计理念非常棒。
计算机网络 AND 八股文
一个很多问号的问题吧,这是我在货拉拉面试中遇到的,问题就是从电脑开机到浏览器页面展示,网络发生了什么变化。其他的问题都很常见的:
- http 状态码
- http 版本问题
- https
- 从输入 url 到浏览器展示
- post 请求为什么会发送两次
- 浏览器事件循环
- jwt
- 强缓存和协商缓存
这些题目也都中规中矩,计算机网络这边的话,建议看看黑皮书计算机网络,和图解系列的图解 HTTP 和图解 TCP/IP,看懂这三本,你面试的时候应该就很牛逼了。
场景题
-
线上动画出现了问题,本地没问题,怎么排查? 当线上环境的动画出现问题,而本地环境运行正常时,这可能是由多种因素造成的。 我们应该可以准许以下方法来进行解决:
-
确认环境一致性,确保线上和本地使用的依赖库版本一致。有时候,即使是依赖的次要更新也可能导致问题。检查是否所有的配置文件都已正确上传到线上环境,且与本地环境保持一致。
-
并且尝试不同的浏览器上运行你的线上应用。可能是某个特定的浏览器或版本不支持你使用的某些CSS或JavaScript特性。确保使用了适当的浏览器前缀,以支持较旧的浏览器。
-
检查网络请求,确保所有的资源(如JavaScript文件、CSS文件、图片等)都已正确加载。
-
清除浏览器缓存,或尝试使用无痕/隐身模式访问页面,确保加载的是最新资源。
-
确保服务器配置正确,没有限制某些类型文件的访问。确认构建过程是否有问题。比如,有没有文件在构建过程中被错误地修改或排除。
-
-
虚拟列表
emmmmm 好像还有两三道的,但是我忘记了,记起来的话再不回来吧哈哈哈哈。
项目
可能是我项目比较亮眼吧,这也可能是我有面试的原因之一,在这几个面试当中,大部分都是在问项目,所以也很少八股文。
下面这个是脚手架的:
- 为什么写这个项目
- 竞品如何
- 你写的脚手架和 cra 有什么区别
- 截至 9 月份,我在牛客上面见到过关于 pnpm 的问题,我都被问过,
- monorepo,有什么优势,monorepo 实现方案
- 如何实现模板扩展
这个是在线代码编辑器的:
- 如何在浏览器上执行 node
- 除了使用 iframe 实现在线代码预览,还有什么方案可以(这个问题问的非常好,所以我现在这个项目用的 webcontainer 也就是从这次七牛云面试中学到的)
- 做了什么优化(主要做了一些 web worker 相关的吧,使用到 worker,也是在面试中学到的)
- 协同相关
- 你有了解过 codesandbox 架构吗(小小的脑袋大大的疑问,现在秋招都这么卷了吗,估计过年前能把这篇文章写出来吧,手太冷了,码字码不动了)
- 怎么做的词法高亮
应该就这些了吧。
建议?
就当故事听吧,我说的这些话也未必适合你。如果你是在校生还不是应届生的话,有面试的话,且面试成本不是很大的,尽量去。因为在面试中确实能学到挺多东西的,包括胆量,查漏补缺,如果面试官技术很牛 X 且愿意给你分享一些经验的话,那么你真的就是大赚啦。
面试过后记得复盘,要把面试过程中没答好的问题重新复盘,重新组织语言。
前端的话,计算机网络和操作系统都还是比较重要的,算法和数据结构那就非常重要了,React 源码里面就涉及到了大量的算法和数据结构了。
写两个好一点的项目吧,别天天网易云,谷粒商城了,别说面试官了,我就连我自己看见我之前的简历上写有网易云我都想撕掉简历。
找不到工作的话,那就慢慢找咯,先把眼光放低再找其他机会咯,没必要抱怨,抱怨有用吗,还不如好好学习,好好寻找解决问题的办法。用脑子去解决问题不可能永远没有机会吧。
学的技术别太广,一定要精,别今天学学 HTML,明天又跑去学 php,后天又跑去学 js,一步一步来,别急,急也没有用。
总结
没啥好总结的,你自个儿总结吧,反正你也不会认真看。