百度一面
时间:2026/3/11 周三 16:00-17:00
自我介绍
平时怎么学习前端的
在红岩网校做的什么工作
官网用的哪些技术栈
官网用的什么打包工具
开发之后怎么给他推到线上版本去的
用过哪些包管理器(讲了一下npm和pnpm区别,别的想不起来了)
了解哪些git命令,git merge和git rebase区别是什么?
介绍一下笔记编辑平台项目
为什么要用nextjs
nextjs底层用的是什么打包工具
答错了,应该是turbopack,我说的vite
数据库是用什么实现的
数据库里有几张表
有没有部署上线,现在可以访问吗
ai智能续写功能是怎么实现的
项目开发中遇到了什么困难,怎么解决的
会用Linux吗?
事件循环
css选择器权重
如何实现居中
闭包是什么,闭包的应用场景,闭包的弊端
浏览器垃圾回收机制
react中常用的api
useRef, useState, useEffect, useMemo, useCallback, useReducer
最常用的是什么api
怎么获取DOM元素,原生js怎么获取DOM元素
有一个api的执行时机比useEffect稍微早那么一点点,你知道是哪个吗?
useLayoutEffect
手撕:有效的括号
思路和逻辑正确,但是出现了两个问题:
const pair = new Map({')'😢, ']':'[', '}':'{')})报错,在面试官指导下改为分别pair.set(')', '(')
stk[-1]===pair.get(c)判断错误,在面试官指导下改为stk.at(-1) === pair.get(c)运行成功
反问:您作为面试官可以给我一些建议吗?
- 项目可以讲的再清楚一点,多讲一些能体现前端技术的
- 简历可以再丰富一下
周五中午hr通知一面通过,约二面
询问当天或者下周一是否有空,我答复当天下午三点后及下周一都可以
hr当天晚上八点回复我二面时间为下周一下午两点
百度二面
时间:2026/3/16 周一 14:11-15:48
- 讲讲在做项目的时候学到了哪些东西
- 拷打项目为什么选用这样的技术
- 讲讲从用户输入url到网页渲染的全过程
- 拷打react diff算法细节,如果有一个列表,我只是把开头的那个元素挪到了最后,diff算法具体会做哪些事
- 讲讲建立tcp连接的时候为什么需要三次握手,为什么不是两次不是四次
- 你提到的这个syn和ack是啥(我不知道啊只是我背的资料里出现过这两个词我就记住了。。。)
- 如果客户端发送了请求之后,在返回响应之前,如果用户这时候直接关掉了整个页面,应该怎么处理
- 讲讲react中有哪几种组件间的通讯方式
- 手写react组件
- 创建一个组件,并让它显示在页面上
- 实现点击按钮count加一
- 实现按钮的节流
- 再创建一个计数器,共享一个按钮,但是它不节流,立马加一
- 创建一个Child子组件,并挂载到当前组件上
- 实现按按钮时,仅有父组件重新渲染,子组件不重新渲染(到这一步我就不知道了,面试官教我用memo实现)
- 子组件传入一个prop,子组件获取到父组件的count值
- 现在点击按钮时父子组件又都会重新渲染了,怎么解决
- 反问求建议:
- 做项目的时候技术选型没有自己的思考,好像是别人要求用这个技术,就用了,没有思考之后的取舍。比如原本为了实现协同编辑引入的Yjs,但是并没有实现协同编辑,Yjs现在也只是为了离线编辑的时候更流畅,为了这么一点小东西引入这么大的包,不值得,如果是他他会直接舍弃Yjs,还可以缩短开发周期,确保项目轻便。
- 在技术方面没有自己的亮点,没有自己擅长的东西,面试官说他觉得重要的不是会很多东西,好像会用很多技术栈很多框架,重要的是你对一个技术的理解是否深入,如果你真的把他很多底层和细节弄明白了,其实一通百通。
- 他说我貌似对react原生的一些hooks都不太熟悉
面试官一开始迟到了十多分钟,因为没有找到空会议室
全程没问什么八股和算法,全在问我项目的技术选型和技术细节还有最后的手写组件
我真的感觉自己啥也不知道,完全被问懵了
最后问建议的时候面试官说了很多,感恩
二面挂+反思
时间:2026/3/20 周五
一直到中午都没有一点消息,我实在沉不住气去问了帮我组内直推的朋友,很遗憾他告诉我二面挂了
<img src="mentor评价.jpg" style="zoom:25%;" />
原话:
他说感觉你可能基础不算特别牢固,就是有些东西只是知道怎么做但是没有细细想过为什么要这么做
然后会带来一定程度的沟通理解问题(灵活性欠缺)
问题出在哪
目前这个项目的技术架构/选型没体现出思考,做的事不是以解决业务实际问题为导向,个人能力缺少亮点
1. 技术选型的思考
- 我好像只是因为别人叫我用这个技术做我就用这个做了,没有自己的思考
- 我引入yjs其实是为了做协同编辑,但是最后协同编辑没做出来,yjs只在本地存储层,面试官跟我咕咚说一堆,如果这样的话其实根本不适合引入Yjs
- 引入一个庞大的库但是只优化了一个很没必要的点
- 这不只是一个技术失误,这是一个思维缺陷
- 引入Yjs是技术上的贪污,拿了不该拿的复杂度
- 每一行代码都要对用户流量、首屏性能、包体积负责
- 我有说我后续的思路,没做是时间原因,面试官意思是如果时间原因更应该思考在技术架构上的选择
- 本质: 没有建立起 “成本-收益”分析模型
2. 个人能力无亮点
- 代码基础不扎实
- 对于一个东西,只会用而不了解【原理】和【为什么】要这么用
- 灵活性欠缺
- 回答问题像是在背书,一旦面试官提出其他情景/需要解决其他问题,就卡住说不出来了
- 沟通固执,既然面试官说了这个方法不好,要换一种解决思路,就不要再重复自己原有的思路,一定要跟着引导走
- 思考问题没有发散性,要考虑极端条件和边界条件
- 项目流水账,体现不了自己的思考,像一个执行者而非工程师
- 面试官引导你换个思路,你还在解释“我当时为什么这么想”。
- 本质: 这是一种防御性沟通。你在潜意识里把面试官的质疑当成了对你能力的否定,所以本能地想要“辩护”
- 真正的工程师思维是 “目标导向”:面试官不是在否定你,是在给你递梯子。他希望你顺着他给的思路,展示你解决问题的弹性,而不是展示你的执念
- 在职场中,如果你做Code Review时,面对senior的质疑,第一反应是辩解而不是理解,那很快就会被贴上“难协作”的标签
- react性能方面知识薄弱
- 没有在一个方向深入钻研,造成好像会的很多但一旦问深了都不会的尴尬场面
- 要有个人特点,性格?思维方式?思考角度?逻辑思维?impressive?
解决问题
1. 针对技术选型问题
- 任何做的事情都应该是为了解决某个现实的痛点
- 你为什么要做这个项目,有市场吗,有需求吗,行业发展的前景有考虑吗,有人用吗(忌自嗨式开发)
- 功能解决了什么痛点,产生了什么效果,遇到了什么难点,如何解决的,学到了什么(忌无脑式开发)
- 你的项目做到了同类产品没做到的哪些事情(平庸即原罪)
- 说话有章法,言之有物——STAR法则:Situation情景,Task任务,Action行动,Result结果
- 你是怎么让这个项目变得更好的
- 本质是考察你对项目的思考,性能优化?比优化更能体现思考的是:更好的架构,更好的选型
- 在有限的时间空间,用最少的成本,杀伐果断,拿出最好的成果,最成功的产品
- 针对现状
- 如果不改项目,那“引入一个庞大的库但是只优化了一个很没必要的点”的痛点会一直存在
- 下次下下次面试官拷打项目的时候,永远会有这个坑在
- 这是一个很明显的缺点,会显得我很笨,对技术选型没有思考,直接贴上能力不达标的标签
- 所以这个痛点一定要尽快解决,要么移除Yjs,要么补全协同编辑功能
- 解决之后关于这个点能成为下一次面试时体现我思考的亮点
2. 针对个人能力问题
代码基础不扎实
- 细致过一遍react官网,多写多写,磨手感
不了解原理和为什么
- 多看mdn,任何技术都要打破沙锅问到底,问到原理,了解其底层如何实现,了解其在实际问题中如何运作,不能泛泛而止
灵活性欠缺
- 提升综合能力,真的理解到每个知识点的原理和运行机制才能做到灵活作答
- 认真听面试官说了什么,减少沟通成本,力求秒懂考察点
- 不要浪费时间,当机立断
- 发散性思维,讲完正常情况之后尽量再分析一下极端/边界情况
- 要做工程师而不是执行者,面试其实除了考察基础之外,就是考察一个人对自己所做事情的思考能力
现在开始补课react性能
钻研react方向,技术在深不在广,一通百通,求知致学
面试时需要有个人特点
- 性格方面:外向、自信、易交流、擅长团队合作、面对压力无惧色、无不良性格(如内向别扭内耗受挫愚蠢)
- 思维方式:在有理性逻辑的前提下,可以跳脱一些,要有用户角度的产品思维,同时务必体现出技术思维,不要循规蹈矩,不要千篇一律,不要怕超出常规,要Outstanding,要Eyecatching,要Sparkling
- 表达方式:
- 在积极大方有礼貌的前提下,非必要不说话,不要讲口水话,避免“呃。。。”和“嗯。。。我想一下啊”,言之有物,每一句话都要有其信息量,你是为了表现自己的聪慧和专业性才张口说这话的,任何可能造成负面印象的话都咽回去
- 并且讲事不要绕来绕去,任何事情都能用一句话说明白,第二句是承接第一句,而不是把话换一种方式又说一遍,大家的时间都很宝贵
- 言之有物,从一个人说话的方式就能看出他的思维、性格、靠不靠的住,说话按着STAR法则说,忌张嘴乱叭叭
其他可能存在的问题
- react状态管理,hook
- hot100没刷完,手撕还得练
- 项目后端怎么做的,接口怎么写的
- http网络层面还得学
- 行业发展前沿的技术要多了解
- 探索前端和ai结合的领域
- 测试,单元测试,ab测试,Jest,Cypress
人生第一次面试就是大厂,面试官很赞,压力和思维都给的恰到好处,让我这个初出茅庐的面试者学到了很多,有做事智慧的人很有魅力,加油成为那样闪耀着理性光辉的人吧,一定会有人欣赏那样的我。
每次规避掉一个坑就是进步,记住这一步,一步又一步,才能向前走去。
