2023年5月大厂面经新鲜出炉,这些八股文你会了吗

1,427 阅读5分钟

行情感受

2021年的时候,以为疫情下行情很差,没想到一直在走下坡,22年23年形势越来越差。说【前端已死】我觉得是有些夸张了,不过确实可能到了植物人或者打骨折的程度。

各家大厂外企等裁员不断,招聘要求也逐渐变高,面试通过率也会因为卷而低一些。拿着 科班出身 阿里背景 三年经验 的简历,依然有些拒掉简历的公司,有的卡 985/211、有的要 5 年以上经验、有的要技术或者项目高度匹配......

另外,招聘的岗位也减少了很多,北上深这种一线城市还稍微好些,杭州等二线城市已经卷的要命了。

如果你 Boss 上面投简历已读不回,不要太怀疑自己,俺也一样。所以还是尽可能找内推,起码能简历到项目组里。

面试中间也有各种经历,有被刷KPI的——和面试官聊了一个半小时,题也都做出来了,面试官频频拍大腿说牛逼,最后没过,哎,来骗来偷袭。还有碰到”细狗“面试官的,最烦这种,拿着文档问各种很细的东西。还有流程巨慢的,别的 Offer 开了几天了,他才开始约面试......

总共大概花了10天左右时间面试,拿到了 滴滴、拼多多、Shein 等还有些中小厂的Offer,最后选择了去滴滴,滴滴虽然现在有些式微,员工体验口碑还算比较好。

总之,行情确实不好,不过保证自己的核心竞争力还是有饭吃的,水平好的也能要到好涨幅的Offer。

题目

下面将通用的八股文题目整理出来,老套路按热度排序八股文题目,希望能对大家有所帮助。

HTML

  • defer 与 asnyc ——高频
  • prefetch 与 preload ——高频
  • 前端缓存 cookie WebStorage IndexDB ——高频
    • cookie 有哪些字段
    • http-only是干什么的

CSS

  • 谈谈对Flex布局的理解 —— 高频
    • flex 的值有哪些
  • 谈谈对 BFC 的理解
  • 哪些属性值可以开启层叠上下文
  • 有什么方法隐藏元素
  • 水平垂直居中的方法

浏览器

  • 从输入URL到加载出来的过程 —— 高频
  • 重绘与回流 —— 高频
  • 浏览器有哪些进程、线程 —— 中频
  • 跨域是什么
  • 浏览器与V8的关系

JavaScript

  • 事件循环 —— 超高频
  • new 一个对象的过程 ——高频
  • ES6+ 新特性 —— 高频
  • ES Module 和 CommonJS的区别 (包括其他模块化) —— 高频
  • Reflect 是什么 ——中频
  • 谈谈对 Promise 的理解
  • 执行上下文
  • 作用域链
  • 闭包
  • Object.defineProperty 与 Proxy 的区别
  • Map 与 对象的区别,Map 与 WeakMap 的区别
  • 垃圾回收机制

网络

  • 三次握手与四次挥手
  • HTTP2 的新特性
    • 怎么开启HTTP2
  • 谈谈 HTTPS
  • HTTP 缓存 ——高频

React

  • 谈谈React的 Fiber 机制 ——超高频
    • React 的时间切片实现
    • Fiber如何实现可中断可恢复
  • React 为什么引入 Hooks
    • 常见的 Hooks 有哪些,作用
    • useMemo useCallback memo的区别与场景 ——高频
    • Hooks为什么要写在顶层
    • Hooks怎么存储的
  • setState是同步还是异步,新版本呢,为什么 —— 高频
  • React 的 事件机制 ——高频
  • React 17 18的新特性有哪些
  • 路由原理 —— 高频
    • popstate 可以监听 pushState replaceState 吗
    • 路由懒加载原理
  • 状态管理 —— 超高频
    • React 有哪些状态管理的方式
    • 谈谈对 Redux 的理解
    • 谈谈对 Context 的理解
    • redux 与 context如何注入给组件
    • react-redux 做了什么
  • 为什么之前需要在组件顶上引入 React

Vue

  • React 与 Vue 的区别 —— 高频
  • Vue的Diff算法 ——高频
  • Vue的响应式原理,Vue2和3响应式区别
  • Vue3 的 toRef 与 toReactive 的区别

Webpack Vite Babel

  • Webpack 的 Loader ——高频
    • 如何手写 Loader
  • Webpack 的 Plugin ——高频
    • 如何手写 Plugin
  • Webpack的性能优化手段 —— 高频
  • Webpack的构建过程 —— 中频
    • 如何提高构建速度
  • 谈谈Source-map
  • Babel 的编译过程
  • Webpack 与 Vite 的区别

其他

  • 前端性能优化 —— 超高频
    • 图片
    • 网络
    • 缓存
    • 打包
    • ...各种
  • 前端安全 XSS XSRF 等

手写题

包括但不限于:

  • new 的过程
  • 深拷贝
  • 数组转树 —— 重点
  • 扁平化 ——重点
  • Promise 的静态方法 —— 重点
  • 数组去重
  • 响应式 —— 重点
  • 虚拟DOM构建真实DOM
  • 发布订阅 —— 重点
  • compose —— 重点
  • 批量请求 —— 重点
  • 寄生组合继承
  • 等等

项目

众所周知,项目也是面试中非常重要的一部分,需要准备好亮点难点,尤其喜欢考察性能优化手段。这部分建议好好打磨,提前发掘,准备话术,必要时可以先准备好逐字稿熟悉透彻。

最后

2023年,前端一面的核心八股文还是这些东西,好好准备一定是没问题的,需要尽可能答得完整且有深度。另外、卷就卷在要求比较高,可能一道题翻车面试就会挂掉。

除过八股文理论外,手写题还是频率非常高,包括 JS 手写题和算法题,基本上也是做不出来就没了,需要用心准备。

建议非必要不出去面试先继续苟着,如果必须找工作的,建议多刷题,多给自己简历和项目找亮点,每场面试完及时复盘。

行了就这样,滴滴师傅要去接下一单了,再见!