惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
N
Netflix TechBlog - Medium
腾讯CDC
C
Check Point Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
S
SegmentFault 最新的问题
F
Fortinet All Blogs
美团技术团队
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
F
Full Disclosure
Recorded Future
Recorded Future
D
DataBreaches.Net
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
J
Java Code Geeks
I
InfoQ
Y
Y Combinator Blog
A
About on SuperTechFans
AI
AI
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
W
WeLiveSecurity
M
MIT News - Artificial intelligence
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Schneier on Security
Schneier on Security
The GitHub Blog
The GitHub Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Docker
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
V2EX - 技术
V2EX - 技术
Project Zero
Project Zero

保罗的小宇宙

奇趣影棚项目 Vibe Coding 第一天问题记录 威联通 NAS 使用 CloudFlared 远程访问 记一次被街头诈骗的经历 记一次升级 Nuxt 4 的诡异问题 记一次移动端 Safari 调试踩坑 记一次装机没有一次点亮的排查过程 2024 年终总结 将 MO3 音乐导出成 WAV/MP3/OGG 等格式 该写好代码吗?写好了也可能变得不好了 排查了一个导致页面白屏的问题 从零开始部署 Ubuntu 服务器环境 使用 Docker 自动化部署的 NextJS 镜像大小优化
失业后的一次前端面试经历
Paul · 2026-06-09 · via 保罗的小宇宙

这次面试,主要还是对面主动联系为主,应该是看我写了 NextJS 和电商相关经历吧,他们认为和岗位比较匹配,于是得到了这次宝贵的面试经历。面试过程还是挺紧张刺激的,毕竟人家问到的,不一定你平时经常用。

HR 面

HR 面没有具体考察技术,但我看也问了不少涉及技术、协作相关的话题,和一般公司的人事还是有些不同,整体回答我感觉正常水平吧。以下回答都是在对话里面完成的,所以可以先思考再回答,并完整摘录。

HR:你说说你工作的心得吗,之前工作的部门规模,参与其中的角色作用

答:上家公司挺好的 是创业公司自营业务 大家相处起来氛围也很好 我们团队 20 人左右,我参与的项目里面 10 人这样。因为做了四年 我这边参与维护过的东西也多,就以近期的 AI 项目来说我这边主要是参与制作一个无限画布的功能,因为工期有一点紧,代码质量有一些不够好,我就去对这块做各种优化改进,以及最影响使用的一些性能问题吧 主要是涉及到 React 的组件渲染这块

HR:因为公司的全技术都是老板做起来的,他比较喜欢直接开会对接工作,我们没有产品经理,需求大多是一起讨论、简单文档,原型和说明反而要技术这边编写。你之前有没有经历过没有产品、直接对接技术负责人/老板的工作模式?遇到需求比较模糊、不完整的时候,你一般怎么处理?

答:有的 我第一份工作就是这样 当时在旅行社那边技术负责人就是和其他部门做对接 相当于是直接对接具体使用系统的人 不过当时这块的具体流程应该没有这么细 都是他们大佬带头开干 我这边做对接为主

不过结合之前的工作经历 其实我们也并非每个开发任务都有很详细的产品文档,也有不少是口头需求 临时改动 不过都是针对用户反馈和数据去做的调整 这种需求模糊挺多的,一般分两种情况,一个是业务层面的,这就只能拉上级详细确认,另外一种是交互层面的,我会自己简单设计方案让产品看一下,或者他觉得有更好的方案,再决定用哪个更好的方案

HR:今晚 8 点 45 分左右,进行技术面试,你时间上可以么

答:可以

HR:你期待工资多少?

答:(想先了解上班时长)公司正常上班时间是?

HR:10~7点,期间有1个小时休息,

答:双休吗

HR:是的

答:也就是 12-1 点休息这样是吗

HR:不是固定的,因为多数 11 点半左右开始开会到 1 点左右,你最近的工作时间和待遇如何

答:之前工作时间都比较固定 早上也是 10 点这样,中午是休息 2 小时,晚上我一般 6 点半到七点走,看任务完成情况吧

HR:我们每天会有 IT 技术会议,老板亲自带队跟进进度、同步需求、解决问题。需要你按时参会、主动汇报进度、主动反馈卡点。前后端错开开会,例如今天中午前端开,明天后端开

HR:我们团队没有测试,所有功能都是开发自己自测、自己验收、自己保证上线质量。你平时开发完,有没有自测的习惯?一般会检查哪些内容?如果上线后出现自己没测出的问题,你会怎么处理?

答:功能自测肯定是必须的 包括我每次提交代码之前 都会人工确认一次 确保不会把临时改动也带上去
不过也得分情况比如说有些功能需要有多个前置步骤,可能就会跳过一部分主要测改动后的部分,如果时间允许的话肯定需要完整跑几次

上线后出现问题的情况客观来说肯定会存在 不过因为代码合并产生的冲突导致的比较多 比如多个人在改同一个模块的情况下 所以每次合并的时候还是得确认清楚比较好 关于线上问题当时我们的方案是做 sentry 监听线上的报错信息,以及 clarity 跟踪用户的操作

所以还有一种方案就是 尽可能拆出不同的项目 比如说商城是前台,管理业务时另外一个后台项目,这样也能确保不会相互影响

前端这边有几位同事一起是吗

HR:你是指什么?

就是你说的前端开会

HR:目前 IT 团队配置前 2 后 2,大家都会参与

HR:你上一份薪资待遇如何?

答:税前 xx-xx

技术面

技术面考察的知识点非常丰富,基本上简历上能问的都问了一遍,面试官还是很有水平的。简单复盘下来,有些问题我完全答对,有些回答不够直接明了但也答中关键点了,有些比如 Jenkins、Electron 相关的就确实是不太清楚,也着实是没有答上。以下回答部分为印象记忆,可能和实际有出入。

面试官:http 1.1 2 3 的主要区别是什么

答:印象中区别在于连接重用,之前用过 Lighthouse 提示我有些资源走的是 1.1,优化过

面试官:1.1 和 2 呢

答:没回答上

复盘:这里主要区别的确是并发,1.1 和 2 的最大区别,而 3 增加了 QUIC,使用 UDP 协议

AI 的回答挺详细的,这里分享出来记录 传送门

面试官:这里不行不要紧,那这个浏览器内核有哪一些

答:主要三个,Safari、Chrome、IE

面试官:它们的内核是什么,这是浏览器

答:Blink(Chrome),还有一个叫什么来着,Webkit(Safari)

复盘:其实还有一个 Firefox 浏览器,用的是 Gecko,不过其实很少人用,IE 是 Trident

面试官:可以说明下 Restful API 的 Methods 吗

答:主要用的是 GET、POST、PUT、DELETE 这些

面试官:POST、PUT、PATCH 的区别是啥

答:我理解 POST、PUT 都是提交数据,PATCH 是更新

复盘:这里就答错了,POST 是创建,PUT 是全量更新、PATCH 是部分更新,参考 传送门(之前自己小窝的后端也有这个问题,一个更新接口既要支持全量更新也要支持部分更新咋弄了,我倒是用了一套很诡异的实现,默认按照 PATCH 的逻辑形式来,传什么改什么,全量传默认等同于 PUT 了其实

面试官:Tailwind 里面 Container 是干什么用的

答:Container 主要是容器查询,比如根据容器大小去设置子元素的宽高啥的

面试官:Tailwind 里面哪个呢,怎么用

答:(这里我理解成 md:xx sm:xx 这个东西了,他问的是 className 里面写的那个)这里没有很好回答出来

复盘:直接看 文档 吧,就是这样的一个东西

<div class="@container">
  <div class="flex flex-col @md:flex-row">
    <!-- ... -->
  </div>
</div>

我理解其实就是基于 CSS 容器查询的一个实现。最近确实用到了这个东西,不过是在我 Vue 3 哪个主页项目上,用的还是纯 CSS,哈哈。

面试官:Grid 和 Flex 的区别

答:现在我 Grid 用的多一些,Flex 兼容性更好,两者主要区别一个是宫格,宽高固定,一个是宽高自由可以单独指定。

面试官:block、inline-block、inline 区别是啥

答:block 就是最常见的占满一行的,inline-block 我记得是基线对齐那种模式,主要是和 inline 一起,inline 就是常见的文本排版,这个 inline-block 稍微有点不一样是个整体,也参与到那个基线对齐

复盘:这里其实也算答到了一点,如果更具体一点比如说 inline 的 margin 上下无效、padding 不影响行高计算估计更加分,依旧是 AI 传送门

面试官:align-items 和 justify-content 区别是啥

答:一个垂直居中一个横向居中(实际上这个根据 Flex 的对齐方式,会有出入)

面试官:justify-content 的 space-around、space-between、space-evenly 区别是啥

答:三个 div 举例的话,一个是左右有间距、一个是中间有间距,再一个是比较居中(这里其实没讲清楚,但大概意思一样)

复盘:其实这几个都不咋常用的,大多都是宫格形式布局... 直接上 MDN 链接

  • space-between:首个元素放置于起点,末尾元素放置于终点
  • space-around:每个元素周围分配相同的空间

    • 类似于 Float/Flex + Padding + 负数 Margin 实现宫格间距的那种默认实现
    • 现在有 Gap 属性可以解决间距,但是不能解决一行摆几个元素占比多大的问题,这种场景上 Grid 更舒服
  • space-evenly:每个元素之间的间隔相等
面试官:React 的生命周期

答:现在新版 React 已经没有生命周期函数了,都是改成 useEffect 这种 Hooks 了。(他其实想问我组件挂载到结束,React 都干了些啥,但是一开始没表达清楚我当时也没转过来,死磕在 Vue 那种生命周期函数上了,之后回答完全偏了)

复盘:我的理解是这样,首先组件挂载,先执行渲染函数,得到虚拟 DOM 然后加入渲染队列,渲染成实际 DOM,再执行 useEffect,更新组件状态同理,最后卸载组件。还是看 AI 完整解答 吧,它讲的更详细。

面试官:useCallback 和 useMemo 的区别

答:一个是类似 Vue computed 合并计算结果,一个是缓存函数,都需要传 deps(完美回答)

面试官:为什么这段 TypeScript 后面要加一个 as const
const obj = {
  city: {
    name: "ShangHai",
    zip: 200000,
  }
} as const;

答:as const 主要是确定变量类型,假如不写的话就有可能识别成 string 或者联合类型 string | number 这种,就不方便去判断具体类型

复盘:也算是讲到了一点但回答其实不太准确,其实它会把所有值设置成 readonly 表示这个值不会发生任何变化,并且每个对象的类型固定,这里涉及到了“类型拓宽”概念,传送门

面试官:SPA、MPA 区别是啥

答:SPA 就是 React 这种(我理解成 CSR 了),MPA 就是 NextJS 那种(其实这里是 SSR)

复盘:这里基本答错。CSR、SSR、SSG 是一个概念,SPA、MPA 又是另外一个概念,现在的框架基本上都是融合操作,并不能算具体的 SPA 了,MPA 其实就是之前 PHP 那种老的,依旧 AI 传送门

面试官:interface 和 type 什么区别

答:我这边常用可能还是 interface,type 主要是做联合类型,虽说 interface 也可以做(其实说的是 extends,继承和联合还是有区别的)

复盘:其实区别也挺多,不过建议定义对象类型优先使用 interface,其次再去使用 type。传送门

面试官:我看到你提到了 Electron,我要在视窗里面建立独立的悬浮部分怎么做

答:这个确实没做过(上一次搞 Electron 都是 2 年前了,很多 API 也没印象了,彻底挂)

复盘:传送门,其实我也不确定 AI 的回答是不是他想问的。

面试官:Electron 的 contextBridge 是干什么用的

答:我记得是主进程和子进程去通信使用的,一个前台一个后台,需要用这个传数据

复盘:直接看 文档 吧,确实差不多是这样子,但我认为这个回答并不是很好,毕竟真的好久没摸过 Electron 了(看了眼我 Electron Fiddle 是 24 年安装的,之后一直吃灰)近 2 年都在搞 Felo,他们也没有说需要做客户端。

面试官:来一道 IQ 题(印象记得是猜谁才是凶手,只有一个人回答是正确的)

复盘:这题似乎没有标准答案,主要看你怎么分析每个分支下会产生什么结果,第一次遇到这样的面试题,确实给困惑住了,这是 AI 对这道题内容的猜测,传送门 应该差不多是这样子。

面试官:你不是做了个 AI 项目么,你觉得当时最核心的业务目标是什么,是提高用户留存还是付费还是验证产品方向呢(其实一开始也没听清楚)

答:主要是文员这块吧,我们做的是 PPT、网页 什么的,竞争也挺大的

面试官:你觉得哪些功能是正需求哪些是伪需求

答:我觉得网页多一些

复盘:其实这里我也不知道如何回答,毕竟是运营和产品的策略嘛,我们感觉没啥用也得做不是么,仔细想想似乎这种需求挺多的,有一些还直接被其他优先级更高的需求给埋没掉了,印象最深的是要给 PPT 里面的 SVG 做一个编辑器,虽然我引入了一个库尝试了一下但是发现有个不小的 Bug 挺难解决的,就没继续看了

面试官:你推动切换组件库和优化代码这块本质上是解决什么问题

答:组件数据重构是开发的时候不够顺

面试官:你这个是个人项目还是公司项目,公司项目怎么协调这个平衡

答:因为当时是我们大量推 Vibe Coding 嘛,每个人自己做一套,缺乏统一约束嘛,所以就想着给它做稳定。

面试官:你有没有考虑过需求排期问题,怎么解决的

答:有需求肯定是需求为主嘛,这些都是有空去优化的,当然我也希望一开始流程就能写清晰,这样最好

面试官:那你项目约定怎么做好

答:首先第一个就是组件目录结构那些嘛,哪些公用哪些单独的,Vibe Coding 也是一样你得指清楚哪里哪里嘛,就这块比较重要一些

面试官:我看你用过 Jenkins,那你解释一下 WebHook 是干嘛用的

答:主要是触发构建,你肯定要去 Git 平台绑定这个 Hook 才能发这个创建请求嘛

面试官:Jenkins SCM 是什么

答:这个词挺熟悉的,但是没想起来是什么,是以 Jenkins 本地作为驱动的啥(彻底挂)

复盘:SCM = Source Code Management(源码管理),其实是 Jenkins 里面拉项目仓库代码的方式,传送门 虽说这个 AI 的回答我看的也挺懵的,实际使用差不多就是设一下仓库地址,拉到临时的位置,就可以用 Shell 去做构建等操作了。我自己写的一个简单的 CI 工具,直接只有 Shell 功能,直接在服务器构建,其他全没有...

面试官:Nginx 你主要拿去干什么,有弄过 SSL 吗

答:网站托管,反向代理,我现在用 Caddy 多一些,因为它自动处理 SSL,不用我自己搞,之前用面板操作所以用 Nginx,它里面有个签发 SSL 的工具这样。

结果

HR:“中午好,上周的面试结果出来,很抱歉,本次未能入围,谢谢您参与面试。祝您早日找到适合的工作。”