开场白:我是来面试的,不是来参加考古考试的
2026 年了朋友们。React Server Components 都出好几年了,Signal 在各大框架里遍地开花,AI 辅助编码都成了标配。结果我去面试,面试官上来就问:
"请手写一个防抖函数。"
我:???
闭包、原型链、事件循环——面试老三样
不是说这些不重要。闭包是基础,原型链得懂,事件循环也确实是 JavaScript 的核心。但面试官啊,你不能只会问这些吧?
我面试了 8 家公司,其中 6 家问了一模一样的问题:
- "说说闭包是什么?举个例子。"
- "原型链怎么工作的?"
- "事件循环,宏任务微任务,setTimeout 和 Promise 谁先执行?"
我都怀疑这几家公司的面试题库是同一个淘宝店买的。
更搞笑的是,有个面试官问完事件循环,我反问了一句:"那您觉得在 React Server Components 里,事件循环的上下文有什么不同?" 面试官沉默了五秒钟,说:"这个我们后面再聊。" 然后就没有然后了。
面试官,你用过 React Server Components 吗?
2026 年了,React Server Components(RSC)已经是业界标配了。它彻底改变了我们对 React 的认知——组件可以在服务端运行,直接访问数据库,返回序列化后的组件树给客户端。客户端 JavaScript 体积直接减半。
但我去面试的时候,10 个面试官里只有 2 个能说清楚 RSC 和 SSR 的区别。这合理吗?
// 2026 年的 React 面试应该这样问:
// "这个 Server Component 为什么不能有 useState?"
// "Client Component 和 Server Component 之间怎么传数据?"
// "RSC Payload 是什么格式?怎么序列化的?"
结果面试官问我:"React 的虚拟 DOM 是怎么 diff 的?" 这个问题在 2018 年问我能理解,2026 年了……Preact Signals 都不用虚拟 DOM 了。
Signal:2026 年前端最大的变革
说到 Signals——如果你是 2026 年的前端但还没听过 Signal,那你得补课了。Vue 的 ref、Solid.js、Qwik、Preact Signals、Angular 的信号……Signal 已经是前端响应式的新标准了。
Signal 的核心思想:细粒度响应式。不再是虚拟 DOM 全量 diff,而是精确到某个状态变化只更新依赖它的那一个 DOM 节点。性能直接起飞。
// 看看 Signal 有多优雅
const count = signal(0)
effect(() => {
// 只有 count 变化时才执行
document.getElementById('counter').textContent = count.value
})
面试官要是能跟我聊聊 Signal vs 虚拟 DOM 的优缺点,我直接给面试官打满分。结果他问我:"防抖函数怎么实现?"
给面试官的话:咱能与时俱进吗?
我不是说基础不重要。但面试应该考察的是候选人的学习能力和工程思维,而不是记忆力。
与其问 "手写一个 new 的实现",不如问:
- "你会怎么设计一个可扩展的状态管理方案?"
- "如果让你优化一个首屏加载 10s 的页面,你会怎么做?"
- "React Server Components 和传统 SSR 有什么本质区别?"
好面试题考察的是解决问题的能力,不是背诵能力。
结语:致 2026 年的前端求职者
如果你也在找工作,别慌。面试官问老三样你就答老三样,然后主动把话题引向更深的地方:
- 问闭包?答完加一句:"其实闭包在 Signal 的实现里也有应用……"
- 问原型链?答完说:"不过现在都用 class 了,原型链更多是理解层面的东西……"
- 问事件循环?答完反问:"那 RSC 环境下的事件循环有什么不同?"
面试是双向的,也是你在考察公司。如果面试官连 RSC 和 Signal 都说不清楚,那你得考虑一下:这公司是不是还在用 jQuery 写业务?