中大厂前端面经
说明
本笔记根据飞书页面可见内容整理为 Markdown。 本次抓取未发现独立图片块;若原文后续新增图片条目,建议再补抓一次。
文档说明
面经来源:辅导同学反馈的面经,相似的包装技术点写法参考性会好一些,有些格式比较不统一是因为每个人写法风格给我的不一样。
京东二面
Vue 和 React 的区别及选型场景 HTTP/2 相比 HTTP/1.x 的优势 HTTP/2 多路复用传输效率高的具体原理 JS 垃圾回收机制的实现原理 闭包的概念与理解 闭包导致内存泄漏的原因 如何避免闭包出现内存泄漏 组件间的通信方式 项目性能优化的思路与方法 低代码平台是开发还是使用 低代码平台项目背景与性质 低代码平台团队规模 项目中的最大技术挑战及解决方案 技术栈选型原因(Vue) 国内公司多用 Vue 的主要原因 性能优化的实际案例
腾讯 CSIG 暑期实习一面
- 简单自我介绍
- 开源项目:你修复了一个 issue,具体是什么问题?解决思路是怎样的?
- 教学平台项目:流式传输的方案选型,SSE、Fetch ReadableStream、WebSocket 的对比?
- Markdown 增量渲染中如何处理粘包、半包?代码安全性怎么保证?
- RAG 知识库接入与调优的具体流程?如何提升检索相关性和稳定性?
- 时间分桶算法是怎么设计的,为什么做前端聚合而不是后端直接分好?
- 树形属性数据扁平化具体怎么实现?拍平后如何保留数据间的关联关系?
- 学习榜单的无限滚动是怎么实现的?
- 虚拟列表的详细实现,定高与不定高方案分别怎么处理?流程是什么?
- 动态重排机制的原理,max rank 是什么,和无限滚动如何配合?榜单数据更新的时机?
- 专家筛选的多条件互斥模型是怎么做的?如何保证筛选条件切换时结果不互相覆盖?
- 请求拦截器中的 token 无感刷新方案?多个并发请求同时遇到 422 怎么处理?重放请求后数据如何回到原始调用链?
- 大文件上传的完整链路:分片、秒传、断点续传分别怎么设计?并发分片后端按什么顺序合并?
- 大文件下载时的内存泄漏风险,在哪段生命周期处理?
- 前端 Tree Shaking 的配置与优化怎么做?
- 在校主要课程,技术学习方向规划
- 团队业务了解(反问)
金山云日常实习一面:
水平垂直居中方法 flex:1 在三栏布局中间自适应的部分做滚动区域怎么做 Es6新特性 如何进行响应式布局 cssmodule什么的记不清了 promise状态 Promise的方法有哪些,异步还是同步的 Created和watched 的顺序,如果设置了立即执行,顺序会是怎么样 跨域问题怎么解决 http和https的区别 vue2和vue3的区别 Vue2 中 data 为什么必须是函数? webpack里想要提升性能有哪些方法 tree-shaking的原理 Plugin 和loader的区别和使用场景 webpack里想要提升性能有哪些方法 websocket的理解 手撕:promiseall,深比较函数
b站日常实习一面
- html5语义化
- meta标签除了seo还能做什么
- div水平垂直居中
- 移动端如何实现0.5px的border
- 闭包
- 事件循环
- 技术变化快,如何去学习新的前端技术栈
- useEffect和useLayoutEffect
- 双向绑定,关键api是什么
- vue2进行增加一个属性/key如何做
- cookie、localstorage、sessionstorage、indexdb存在哪
- 跨域
- cors设什么头
- 说一下你的实习/项目,遇到什么技术问题,如何去解决
- sse和webSocket的区别
- 手撕:基于promise实现一个图片懒加载
腾讯pcg暑假实习一面
- 手撕,lc没这题,很简单,用哈希,追问浏览器的sort方法是否稳定
- 事件循环看输出
- 介绍一下你实习做的是什么产品
- 主要做的什么?qiankun架构升级
- 登录怎么实现,密码怎么传给后端,前端加密了密码给后端,后端直接存数据库吗?
- 为什么不用单token,让后端去刷新
- 请求拦截器做了什么
- 父子应用怎么通信
- 通用的组件和逻辑如何复用?
- 子应用之间有没有样式冲突,如何解决?
- 子应用前在 /app1,怎么可以提前拉取 app2 的静态资源,等用户真正切到 /app2 时会更快?
- 主应用和子应用跨域问题
- cors怎么设置,有什么关键字段
- OPTIONS预请求什么时候会触发
- v-if和v-show区别
- display:none和visibility:hidden区别
- 讲一下vue的虚拟dom
- vue的dom diff算法
- vue3为什么比vue2快
- requestAnimationFrame(rAF)怎么用
- 虚拟滚动怎么做的
- nextjs两种渲染方式
- 怎么做seo
- cdn,更新代码,cdn还是命中缓存怎么办?
- sse和websocket区别
- div 字溢出, 如何处理成…
- 如何进行响应式布局
字节暑期一面
- 微前端相比 iframe 好在哪里?
- qiankun 微前端框架与 webpack5 模块联邦有什么区别?
- qiankun 是如何实现微前端的?
- 如何保证主应用与子应用之间样式隔离?同名 class 如何不互相影响?
- 有没有了解过 Shadow DOM?
- 主应用与子应用之间如何通信?initGlobalState 实现原理是什么?两个脚本挂载到哪里?
- accessToken 用在什么场景?为什么不把单个 token 放在 HttpOnly Cookie 里?
- localStorage 和 cookie 的区别?存储大小、存储时间分别有什么区别?和 sessionStorage 对比呢?
- 多 tab 的切换是什么?
- 关闭应用交互是做什么?
- SSE 和 WebSocket 的区别?最大特点是什么?
- Markdown 渲染性能下降 75% 是怎么统计的?从哪开始算、到哪结束?
- 为什么要做虚拟列表优化?
- 虚拟列表是如何实现的?用了第三方包吗?不定高 + 最后一项动态增加怎么处理?
- 追问:如果自己实现动态高度虚拟列表,怎么获取每个 item 的高度?
- 使用虚拟列表后说内存占用减少,你是怎么判断 / 证明的?
字节暑期二面-交广
- 现在ai发展快,对很多研发岗位造成一定冲击,你怎么去看待这个事情,作为前端开发,可以做哪些事情去适应Al发展?
- 深拷贝和浅拷贝
- 防抖节流以及应用场景
- 箭头函数和普通函数有什么区别
- 构造函数的this指向什么
- 讲一下变量提升
- 什么是内存泄漏
- 除了闭包还有什么场景
- 浏览器常见的宏任务和微任务有哪些
- vue3比vue2为什么打包体积更小
- tree shaking为什么esm才支持
- type和interface有什么区别,你如何选择
- typeScript的断言是什么意思
- react生命周期和vue生命周期 开始拷打项目
- fetch+readablestream是如何实现sse的,如何解决粘包半包?
- 重连重试怎么实现?
- 如果一直重试怎么办?(指数回避算法)
- v-html除了全量渲染,还有什么缺点
- 虚拟滚动怎么实现,你使用的这个包是怎么去算高度?
- 追问,不会出现抖动的问题吗?
- 讲一下分帧消费机制是什么?
- 实现useDidUpdate模拟componentDidUpdate
- 实现一个curryAdd函数柯里化,curryAdd(5, 3)(10).valueOf()=18
jdy零售产研前端一面
1.问没有实习对吧? 2.自我介绍 3.多轮对话管理怎么实现? 4.跟服务端交互的时候,把上一轮信息都给他 还是怎么做? 5.流式对话渲染直接渲染markdown还是什么? 6.markdown渲染怎么支持图表? 7.markdown渲染能支持自定义组件吗 8.用的什么协议? 9.传输的内容有用到A2UI或者AGUI吗 10.自定义的AUI是你告诉服务端要什么格式,就按照这个格式返回吗? 11.虚拟列表的渲染怎么实现? 12.第二个工作流编排,看着可以编排 LLM,RAG,MCP这些能力,具体指的是什么? 13.那用户就是可以通过你这个平台自己创建一个AI应用是吗?他可以选大模型,然后也可以创建自己的知识库,然后你会帮他做什么处理? 14.你们这个项目是在实验室用的,还是自己练手的? 15.promise的实现原理 16.箭头函数和普通函数的区别 17.浏览器事件循环机制 18.你们是前端后端都写还是单写(我回答和同门合 作) 19.那你们怎么解决跨域问题 20.react的useEffect,第二个参数传空或者不传有什么区别? 21.useEffect可以返回一个清理函数,这个清理函数的执行时间是什么时候? 22.你们开发的时候会用哪些AI工具?
4.28 腾讯音乐二面
- 自我介绍
- 项目【最困难的 + 碰到过最有技术深度的问题】
- 任务队列介绍一下【微宏任务】
- TCP慢启动
- http缓存
- 网络安全相关【XSS和CSRF】
- 公司里接触到的Electron项目有没有接触到架构方面还是只做了页面
- 音视频推流有了解吗【后面反问时让我不要只了解调用了哪些SDK】
- agent相关有了解吗,后端知识呢
- 手撕 快排+ 大数相加
- 反问
字节一面 TikTok国际直播
项目背景
- 这两个项目经验是学校的作业,还是实习项目?是什么形式?
- 你最早什么时候开始接触前端? 低代码平台项目
- 可以举例两个你遇到的技术难点吗?
- 撤销重做机制是怎么设计的,为什么要这样设计?
- 命令具体是怎么存储的?(历史栈)
- 三种方案(全量、diff、命令模式)对比,各自的优缺点是什么?
- 用requestAnimationFrame优化拖拽渲染的原理是什么? AI对话助手项目深挖
- 为什么用SSE而不用Websocket?
- 追问SSE的缺点是什么? 八股
- HTTP 1.0/1.1/2/3的区别是什么?
- HTTP 3是怎么解决TCP阻塞问题的?又怎么保留TCP可靠不丢失数据的优点?
- HTTP 3在握手机制上有什么优化?
- 讲一下对HTTPS的理解?
- 对跨域的理解?
- 为什么会有跨域这个现象/限制?
- 跨域有什么方案?CROS、JSONP、代理
- 追问用代理的方式会有什么安全问题
- INP是什么?怎么统计的?
- INP具体是怎么做的优化?
字节一面
1.自我介绍 2.讲一个你项目中的亮点,我们深度聊 3.你使用命令模式,你为什么要使用命令模式,每个命令的数据类型是什么样的 4.结合增量快照,你是如何判断一个操作用命令模式还是用增量快照的 5.你每个组件内部是什么数据结构,你整个项目是什么数据结构,这种应该怎么答啊,每个操作的记录是以什么样的形式储存的 6.你的项目架构是什么样的 7.你的项目有登录功能吗?如何去实现一个登录功能 8.token是从哪里来的,它是什么样的数据,它在后端是怎样存储对应的 9.你的组件内部是怎么写的,我想要一个变颜色的组件操作,你怎么去实现 10.手写 合并乱序数组 11.反问
腾讯音乐一面
- 自我介绍
- 怎么学前端
- 项目介绍
- 怎么处理加载速度【大数据表格渲染 真实dom + 虚拟滚动 + raf分片加载】
- 网络相关 a. http请求头响应头 b. 跨域同源策略 c. CSRF、XSS
- 安全相关 + 解决手段
- webpack和vite介绍一下【讲了打包构建的全流程+ 热更新原理的区别】
- 低端机型的白屏情况排查【讲了浏览器兼容+ 网络请求问题】
- safari浏览器白屏呢【讲了chrome和safari可能会有差异+ 开发过程中遇到的问题】
- 外网访问无法拿到最新资源该怎么办【讲了打包构建资源命名需要内容哈希值】
- 对于自己未来的规划
- agent是怎么理解的
- 反问
百度日常一面:
- AI 对话项目它是在什么场景下使用的?
- 流式对话怎么实现的?
- 流式对话为什么不用普通接口一次性返回呢?
- 如果我中途点击停止生成,怎么处理?
- 滚动跟随怎么做的?
- 流式渲染,频繁更新会不会卡顿?
- 多个组件之间是如何通信的?
- 为什么使用虚拟列表?
- 虚拟列表怎么实现的?
- 用虚拟列表就怎么避免滚动时的白屏?
- 虚拟列表不用库的话如何实现?
- 优化了首屏加载时间与整体资源体,有没有数据对比过这个优化前后的差距?
- 前端监控 SDK 主要是做什么的?
- 监控 SDK 为什么要做模块化?
- 错误采集是怎么做的?
- 为什么要做错误去重?
- source map 是干什么的,有什么作用?
- Web vitals 包括哪些指标?
- 性能数据是怎么获取的?
- XHR / fetch 请求是怎么拦截的?
- 避免 SDK 自身循环上报,就是如果 SDK 自身也上报的话,会发生什么?
- 为什么要做批量上报?
- 失败重试是怎么做的?
- rrweb 的录屏原理是什么?
- 录屏怎么降低它的性能损耗?
- 如果输入框里面有密码或者手机号的话,是会原封不动的采集吗?
- 监控系统是你自己做的吗,上线了吗?
4.13 b站前端实习一面(
很有价值的一场面试,不过感觉自己表达得不好,大概率挂了) 请你做一个简单的自我介绍。 请你从刚刚介绍的项目里挑一个你比较熟悉的,讲一下该项目的整体过程,以及你做这个项目时遇到了什么困难、是怎么解决的? 你刚刚说的这个项目都是在字节完成的,是吗? 在字节做核心业务开发与迭代的这几个月里,大概有几个核心需求? prefetch优化具体是怎么实现的 除了 Web Worker 的多线程,还有什么类似方法可以提升页面性能? 你刚刚提到的代码分割跟分包策略,在 Webpack 上的这个性能优化,你之前有实战经验吗? 请你讲一下 Webpack 跟 Vite 之间的构建区别是什么? 请你讲一下 Vite 是通过什么机制让构建变得很快? 一般来说,我们用于评估页面首屏的一些性能指标大概有哪些? 你觉得有可能是由于哪些原因导致 FCP 计算不准确? 页面是列表页或者头图是 banner 页的情况下,回收上来的 LCP 数据跟实际用户体感完全不一致,你觉得有可能是什么原因? 问简历另一个项目某一点具体怎么实现的 浅拷贝跟深拷贝有什么区别? 有哪些场景可能会用到前端浅拷贝,哪些场景能够用到深拷贝? 问简历上的实习 在前端、服务端、客户端至少有这三端的情况下,怎么根据 PRD 里的一些语义自动拆分出前端需要做哪些工作? 都是以人的经验为主的情况下,你怎么去教会 AI 或者让 AI 自己去学习哪些上下文背景,然后能够让它自动分析出来? 如果项目是单页面单仓库,业务又需要多个页面联动,你怎么去给 AI 喂上下文说这两个仓库要互相联动?如果业务没办法用大仓的话,两个页面要怎么去联动起来? 哪个仓库路口不拥堵?(跨仓库联动机制) 你平时是怎么根据 AI 去开发的?可以说一下你目前使用 AI 去工作的工作流程吗? 为什么你简历上偏服务端但是后面选择了前端实习? 你现在手头是有 offer 吗?还是什么情况?
京东零售-本地生活服务事业群
4.13面试的,怎么又是100%的八股挎打。。。。 react和vue组件通信的方式有哪些?(父子、兄弟组件之间如何传递数据) React 合成事件和原生事件的区别是什么? React 的渲染流程是什么?(包括虚拟 DOM、diff 算法) diff 算法能再具体一点吗? 什么是 css的BFC?它的含义和作用是什么? 请简单说一说 Promise。 实现一个多维数组转一维数组的函数(手写代码题)。 浏览器的缓存机制有了解吗?强缓存和协商缓存分别是什么? Cookie、localStorage 和 sessionStorage 的区别是什么? 打开新页面后,sessionStorage 的信息会携带过去吗? 什么是跨域?什么情况会出现跨域? 通常用什么方案解决跨域问题? 你使用过状态管理库吗?(如 Redux 等)
问在字节的实习 你是怎么学前端的? 你用AI 来干什么? 你知道 MCP 是什么吗? 你有什么要问我的吗?
Shopee ssc 前端实习一面
100%的八股挎打 浏览器的渲染过程是什么样子的? 当有较多 JS 文件阻塞页面渲染时,该如何优化以提升渲染速度? 什么是 GPU 加速? 浏览器缓存策略:Cache-Control: public, max-age=3600 的含义是什么? CSS 常用的单位有哪些? em 和 rem 的区别是什么? 如何设计一套能在 PC 端和移动端都有良好样式效果的自适应方案? Flex 布局中,flex: auto 和 flex: 1 的区别是什么? 你是否使用过 Vue 的 mixin?它是用来做什么的? mixin 有什么缺点?Vue 3 是如何解决这些问题的? Vue 3 推出了哪些功能来替代 mixin 的方案? useLayoutEffect 和 useEffect 的区别是什么? Webpack 常用的插件有哪些? 你是否开发过 Webpack 或 Vite 的插件? 如果要把一个 Webpack 项目迁移到 Vite,你会如何评估?需要考虑哪些方面和风险? 写一个 SQL 语句:查询 user 表中的所有用户,按年龄从小到大排序。 Node.js 中常用的中间件有哪些?(如 Koa 框架中) 算法题:给定一个只包含括号的字符串,判断是否有效(lc:括号匹配问题) 你说你了解一些ai,说一下mcp和skill 然后! 面试官:你简历写的数学建模竞赛是一个团队的比赛吗?你的计算机设计大赛是设计了什么项目呢
虾皮一面
进程与线程的区别 栈和堆的区别 你对浏览器缓存的理解? 浏览器的事件循环 列举你知道的排序算法,并说明时间复杂度 浏览器多个标签之间如何通信? react的diff算法 你对udp协议的理解 讲一下tcp三次握手 常见http状态码 回流和重绘的概念与区别 react的合成事件 如果进行连续的setState,每次都会重新渲染吗,为什么? 项目中从react角度进行优化的点有哪些? 在做组件的时候,各部分包的版本是怎么管理的? 按需加载、全量加载
美团暑期二面(40min)
二面前有一个aicoding题(我是酒旅部门就是用他们的catpaw去还原他们酒旅页面的UI) 问了20分钟项目(虚拟列表优化,sse老生常谈) 20分钟问aicoding 1.这个项目的提示词怎么设计 2.这个AI生成的代码有没有review怎么review 3.提示词设计把它规范的太死,是否限制了发展 4.这个代码项目里面的数据在哪里补(就是看你有没有看代码的功能设计) 穿插问了几个八股 1.vite的打包策略 2.Map和foreach的区别
淘天集团-业务技术-原生技术-开发服务&跨端体验
然后你可以简单介绍一下你这边的一个情况 然后你是从什么时候开始学前端的呀? 我看你有一段实习经历啊,在这之前,你,你,哦,这实习经历还是前年是吧? 我看你是本科啊,有考虑考研吗? 我看你这简历上也没有提 AI 相关这块,你最近有在做一些 AI 相关的事情吗?(回答了那个AI流式输出)你可以展开讲讲这个具体怎么实现吗? 这个需求背景是怎么样的? 然后这个 AI 的流式模块具体怎么实现? 这个输入的是一个纯文本吗?还是说带一些其他复文本的数据的? 你是怎么跟你的服务端的同学对接的? 我们输出的格式的话,他 SSE 返回的数据是长什么样子的? 每一个 chunk 他回来都是一个 json 吗? 然后你是怎么样把那个 chunk 转换成那个流式组织输出的? 然后那个频率是怎么控制的呀?就是那个打字机效果的那个频率是怎么控制的? 然后这个项目里你还提到有那个,做过虚拟列表的布局渲染啊,这个可以讲一下大概的实现机制吗? 所以他这个虚拟列表其实是带回收的,对吧? 对,那你是怎么计算它的可见区域的? 所以你在滚动的时候其实是没有复用到我们节点,而是在它滚动到下面的时候重新创建的节点是吗? 那 react 里面这个按这个瀑布流的这个组件是你们自己手搓的,还是用了一个开源然后修改的? 那这个瀑布流它这个组件呢?是封装成一个组件的吗? 那这个组件的那个 props 大概有哪几个?有印象吗? 那你们这个每一个卡片的高度它是固定的吗,还是不固定的? 是等到它那个卡片渲染完了之后,你再二次调整那个渲染的位置是吧? 然后这里现在做了一个大文档的分片上传和序传,这个跟服务端有做配合吗? 那前端的哈希是怎么算出来的? 做了个 MD5 的计算是吧?这有用 Worker 吗? 你知道Worker 可以在这边解决哪些问题吗?
爱奇艺日常一面(45min)
shark-design组件库有什么实际的应用吗? setState是同步的还是异步的? 解释一下react事件委托机制 组件间的通信方式 react-router中browserRouter和hashRouter的区别 JS开发还是TS开发? interface和type的区别 useMemo和useCallback的区别 promise的状态 三种状态有什么区别 localStorage和sessionStorage的区别 http状态码,304和200的区别 css实现水平垂直居中的方法 Git pull和git fetch的区别 手撕题:增计时函数组件,此外还有两个按钮,一个+1一个-1 手撕题追问:useEffect的return的作用 手撕题追问:setCount(prev ⇒ prev+1)为什么写成函数式的? 反问环节:面试官从工作角度劝我转全栈或者agent。 爱奇艺本身打算弄ai agent,但是没有落地产品。自我感觉爱奇艺前端业务有点落后。
京东暑期
- 你在 Capella’s Pro 流程管理平台中核心承担的角色是什么?
- 该项目有后端吗?后端是不是你负责的?后端是用 Java 写的吗?
- 你用 MonoRepo 做包管理的核心做法是什么?
- 当 MonoRepo 管理的包超过 100 个时,统一构建该怎么处理? 包数量超过 100 个时,统一构建不再适合全量执行,核心是通过依赖拓扑排序实现有序构建,结合增量构建与变更检测只构建修改包及其下游依赖包,搭配本地 远程构建缓存复用产物,再通过任务并行调度提升构建效率,同时配合构建脚本拆分、按需构建指令及分布式构建能力,避免全量构建带来的性能与耗时问题,保障大规模 Monorepo 的构建稳定性与速度。
- 使用 MonoRepo 做包管理,和直接拆包、使用 NPM 发布包之间的优劣势是什么?
- 你项目中使用的构建工具都是 Vite 吗?
- Vite 的核心优缺点是什么?
- Vite 相对于 Webpack 有什么区别?
- Vite 在动态导入包时具体是怎么做的?请介绍 Vite 热更新的流程。
- Vite 用什么监听文件变化?
- Mind Chat 智能 AI 对话助手是你全程做的吗?
- 该项目有独立的后端应用吗?
- 后端服务是直接调用 Deepseek 的 API 吗?没有单独部署相关应用吗?
- 你用 React Context 做状态管理,它和 Redux、MobX、Zustand 等其他状态管理工具的区别是什么?
- React Context 相比于其他状态管理工具,会带来什么问题或风险?
- SSE 和 WebSocket 的区别是什么?
- SSE 相比于 WebSocket 还有其他优势吗?
- 建立 SSE 请求是怎么写的?
- SSE 请求会监听哪些事件?
- 如何中断一个 SSE 的请求?
- 怎么实现 SSE 断流重连功能?
- React 的更新机制是怎样的?比如 Fiber 树的更新机制。
- Hooks 的实现原理是什么?
字节前端实习-用户增长面经
1.这个流程协作平台这个算是个练手项目,还是说你们实际有业务的一个使用。 2.先简单说这个流程协作平台它的背景,包括说它可以解决什么问题,可以先简单说一下。 3.后我想了解这个项目是从0到1,还是说你们你在已有的项目上去开发之类的 4.你主要负责的是哪个模块呢 5.这里的工程架构你是负责整一个框架的选型吗? 6.你的构建框架是怎么选的,你可以简单聊一下。 7.你觉得什么算硬链接?什么叫符号链接? 8.为什么说这个项目用了一个的一个架构? 9.是不是一个单仓或者是单独模块会不会更清晰一点呢? 10.我看你这里好像做了不少像图片压缩,包括这类的性能手段?这里是怎么做的?就是原来为什么会比较慢,为什么你这么改完以后就变快了? 11.你知道CDN的一个原理是什么样子的吗? 12.你有了解到那个网络请求的一个缓存吗。 13.你没有了解过像304状态码的这种状态码之类的缓存能力。 14.像强缓存跟协商缓存,我不知道这块有没有了解过。 15.,LCP有没有了解过说具体是怎么去算出这个LCP指标的。 16.,比方说你这里写的是3.7到1.8,那他具体从什么阶段到什么阶段就可以算出1.8。对他根据什么来去算。 17.你个人觉得说type跟interface有什么区别?自己习惯用哪一个做一个类型提示之类的,写一个类型之类。 18.你觉得泛型它主要是取决什么场景? 19.说一下这个虚拟滚动具体的是怎么做的 20.这个组件库跟你前面的选型,我看你这里还有一个组件库(就是指流程协作平台那个项目),这两个组件库有什么区别? 21.前面的流程其实平台其实也是会用这里的组件库(指我的第二个组件库的项目)吗? 22.那组件库目前是也是练手,还是给谁用的 23.我看你这里提供了一个组件包独立开发,这个怎么理解?就是说一个组件可以要需要发布一个包吗? 24.你觉得vue的那个响应式原理,它是怎么去实现的呢? 25.他为什么要用代理
美团暑期一面
美团暑期前端一面 你这个bg很好啊,为什么学前端?为什么选择学React 这个框架 项目都是函数组件对吧?与类组件什么区别? componentDidMount在函数组件中怎么做到 如果要函数组件卸载的时候执行呢? 两个项目根据简历上描述一句句拷打 知道哪些hooks,都介绍一下功能 Useref了解吗 React.memo与usememo区别 三次握手四次挥手讲一下,为什么挥手多一次? HTTPS怎么加密知道吗(TLS过程) 代码题: For(var i=O,i<3;++i){ setTimeout(0⇒{ Console.log(i) }输出? this和箭头函数,[func]=obj之后的this? 事件循环 CSS 三栏布局 手撕反转链表
百度
面向对象编程的特点 JS/TS 的继承怎么实现 说一下原型链 JS 的作用域是什么 闭包了解过吗?具体怎么实现?怎么不被垃圾回收清空? 箭头函数和普通函数的本质区别,还有别的吗? 数组常用方法(实践中) map 和 forEach 的区别 reduce 平常用来干啥? JS 中 null 和 undefined 的区别 两个问号(空值合并运算符??)的作用是什么 函数式编程有了解吗? 单向数据流知道吗? 兄弟组件之间怎么通信? 泛型知道吗? CSS 选择器有哪些?优先级如何? 水平垂直居中的布局实现方法? transform 改的是什么东西? 有遇到过 0.5px 的问题吗? CSS 实现动画的方式有哪些? 怎么做按钮上的扫光动画? JS 实现流畅动画的方式?用过 requestAnimationFrame 吗? 进程、线程、协程的区别? 时间分片有了解过吗? 浏览器的事件循环有了解过吗? 事件循环有哪些事件? 不使用队列,怎么解决多线程操作同一份数据的冲突?
携程
面试官问的问题(整理版)
- 自我介绍一下
- 你在经纬恒润实习具体做了什么?
- 性能优化是怎么做的?为什么用 LCP,不用 FCP?
- 你是怎么定位性能瓶颈的?
- 具体做了哪些优化手段?(代码分割、懒加载、图片、CDN 等)
- v-show 和 v-if 的区别?
- Vue 组件间通信有哪些方式?
- 浏览器本地存储有哪些?cookie / localStorage / sessionStorage 区别?
- 长列表优化有哪些方案?
- 虚拟滚动怎么实现?原理讲一下
- 变量作用域题:var / let / 变量提升,输出结果
- 算法题:两个数组去重、合并、快排
- 移动端适配了解吗?怎么做?
- postcss、rem、vw 这些适配方案了解吗?
- 写过移动端项目吗?
- uni-app 了解吗?
- 你有什么想问我的?
京东一面
个人经历与实习相关
- 目前是否没有正式的实习经历?
- 实习能做多久,什么时间可以到岗实习? 项目相关(MonoRepo/组件库/流程管理平台
- 采用MonoRepo架构的出发点是什么?
- 所使用的MonoRepo大仓架构里有几个不同的独立前端工程/可独立发版的前端子项目?
- 若MonoRepo架构下有多个子业务、需独立发版且需求节奏不同步,该如何设计适配?
- 智能业务流程管理平台使用MonoRepo,还有哪些单一应用无法实现的优势?
- 若抛弃MonoRepo,该如何管理多个子包、实现同一版本依赖的引用?
- 项目中提到的流程设计器具体指什么?
- 使用React Flow做节点拖拽时,了解其拖拽原理和落点计算方式吗?
- 若抛弃React Flow,该如何设计实现组件拖拽+落点吸附的功能? React相关技术
- 如何理解Hook?
- 了解React的class组件吗,Hook和class组件之间的区别是什么?
- 了解Hook的实现原理吗,是否知道Hook调用会生成顺序表、如何修改Hook节点内容?
- 对React Fiber的理解是什么?
- 项目中使用的React版本是多少,有对比过React 19和18版本的区别吗? JavaScript基础
- JavaScript有多少种数据类型?
- JavaScript基础数据类型和引用数据类型有什么区别?
- 两个属性相同但独立创建的对象A和B,AB、A=B分别会输出什么?
- 如何实现一个JavaScript的类型判断函数?
- instanceof的实现原理是什么?
- 如何理解JavaScript的原型和原型链?
- 分析指定代码中5个console.log分别会输出什么结果?
- 代码中new Person()的new关键字执行时做了哪些操作?
3.27 京东风控中心一面(挂)
1.你项目用的react版本是多少? 答:react18 2.为什么不用最新出的react19呢? 3.react18有什么新功能? 4.react16到18有什么改变? 5.react18比较新的语法,比如useTransition能不能说说? 6.对于长列表、大批量的场景,你用哪些react方法解决的,让加载更快、减少卡顿? 7.长列表里面的key用的是什么,是数组的索引吗?不是的话那用的是什么? 8.你是怎么降低LCP的? 答:懒加载、资源压缩、webpack分包、CDN加速 9.但是这些方法我看都是比较常规的,也有默认的配置,这些大家都很常用,还有其他的吗? 10.你是如何使用LightHouse的,怎么去结合lighthouse去分析进行优化的?错误答法:只通过看lighthouse的数值。(面试官认为没有深入了解使用lighthouse) 11.我看你项目有用Webpack或者vite,能说一下你是如何进行技术选型的吗? 12.useEffect是处理副作用的,那什么是副作用? 13.zustand不用provide的根节点,生命周期混乱,还提到redux。zustand是怎么设计的内部? 14.jd.com访问a.com能带上a.com的cookie吗? 15.那在a.com访问a.com能带上a.com的cookie吗? 16.html里面怎么控制script的加载顺序呢?
睿站日常实习
- 讲一讲事件循环机制,写了setTimeout和promise代码让我区分哪个先输出
- 说说promise.all是干什么的,手写promise.all
- 说一下怎么实现水平垂直居中,如果不使用布局,怎么实现一个元素的水平居中(style=“text-align = center)
- 给一个button,怎么实现里面文字的垂直居中
- 说一说箭头函数
- 用异步实现sleep(async/await)
- 说一说你是怎么实现逐token输出的
- 说一说为什么用的SSE,而不是websocket
- 说一说setup
- 说一说低代码撤消重做机制怎么实现的
- 说一说低代码项目的json schema怎么设计的
- 给了一个并发处理代码说说有什么缺陷
3.26 蚂蚁国际一面
- 两道手写: a. 实现调度器类,控制当前执行的任务个数不超过设定上限 b. 实现一个表单校验的工具
- 英文自我介绍,然后英文提问了刚刚介绍中的哪个项目最有挑战性,
- 平常ai用的多吗,实习过程都怎么用到的
- mcp的了解是什么?skill呢 它们区别在哪里
- electron的窗口管理怎么做的,打开多窗口的业务场景有了解吗
- electron中的弹幕渲染是怎么做的,ai写的你有去了解他怎么实现吗,b站那种防挡是怎么实现的有了解吗
- vue的路由管理可以聊一下吗
- 浏览器的安全问题你有接触吗。介绍一下csp的相关内容
- 介绍一下对称加密和非对称加密吧
- react用的多吗有独立的项目吗
- 开始聊ai大约聊了十分钟
- 反问:如何提升自己?答:多学点ai相关的内容,从prompt到skill都要了解
字节二面
白票了这么久别人的面经,回馈一下的八股,一面没啥八股我就不放了[旺柴] 前端安全问题 强缓存协商缓存 三列布局 flex是哪些属性缩写 grow是什么作用 什么操作触发重排 Set Array什么区别 Set哪些方法 promise哪些状态 状态怎么变化 catch之后是什么状态 Vue3 vue2响应式方案区别 项目拷打 阅读闭包输出 手撕树形控件
腾讯北极光工作室群一面
- 自我介绍
- 项目拷打 + 八股 a. Monorepo与pnpm:是怎么使用的,如果让你发一个包,会暴露出来什么内容,此时monorepo的使用特点和优势是怎么体现出来的 b. ES Module与UMD模块化方案的区别 c. 在直播项目中是如何用到的WebSockets,SSE有了解吗 d. 从网络角度 描述一下在地址栏中输入url之后浏览器做了哪些工作,在其中https的加密算法是有了解吗,摘要算法的工作机制,还有什么区别与http的,为什么出现了https e. CSRF有了解吗,怎么解决的,介绍一下JWT吧
- 手写代码 a. 发布订阅模式: 实现了一个带优先级功能的发布订阅类,需支持on、off、emit方法,并能正确处理事件的优先级执行。
jdy京东零售平台与产品研发中心
全程1h,两个面试官拷打,基本问的都是项目,注重底层原理和实现,无八股和手撕 1.python和js区别(因为面试官问我在学校课程学了什么语言,我说了python,答不上来) 2.一直追打拷问ai项目,自己讲解了SSE和虚拟列表的技术选型对比和困难 -上下文对话历史实现 -虚拟列表(他说为什么不直接用CSS来,拷打不定高虚拟列表的具体计算),滚动前和滚动时都要说清楚 -SSE的具体配置-sse中的请求格式具体的是什么样(回答不上来) -大模型相关(问的特别细,追究底层运行原理,大模型如何实现输出的原理,transformer的接口配置怎么实现) -具体完整的从前端输入到流式返回的整个过程 React Hook底层怎么实现(非常深入原理,没背答不上来) React和vue的区别(完全没准备,因为只用react,答不上来) 各个hook的执行时机 一个事件循环题目 [‘1’,’3’,’9’,’11’].map(num⇒parseInt(num)) [‘1’,’3’,’9’,’11’].map(parseInt(num))解释执行结果 后面穿插着问学校课程学什么,这个专业出来做什么,课余时间干什么,以及自驱学习什么东西
腾讯 QQ 浏览器
js闭包 内存泄漏怎么解决(没答出来,讲完js垃圾回收又让我回答还是不会) js垃圾回收 js数组遍历方法 xss和防御 for in 和of区别 setState异步还是同步 合成事件(感觉setState问题给自己挖坑了,没答出来) 为什么不找ai,找前端
百度一面 3.18
- 语义化 html 标签以及原因(SEO没答出来)
面试官面
1.在你这个enterprise flow平台中,你将这个Vuex迁移到Pinia的核心原因是什么呢? 2.你用这个typescripe对进行了一个二次的封装,然后你的请求拦截器里面的一个token注入,以及一个错误处理的核心设计可以说一下吗? 3.我看你是自己封装了一个 useVirtualList Hook,简单讲一下它的一个逻辑,就是封装的这个是怎么进行的,是怎么进行计算的。 4.说一下就是http的一个常见的一些状态码,比如2345这些个代表什么? 5.说一下Monorepo的一个它的一个核心优势是什么吗? 6.讲一下关于数组的一些方法 7.讲一下es6里面let和const的区别 8.简单说一下HTTP和HTTPS的一个区别 9.说一下就是vue的一个生命周期 10.简单说一下flex布局 11.用flex要实现一个水平垂直居中 12.说一下css的一个盒模型 13.bfc 14.简单说一下里面px,em和一个rem的一个区别
主管面
1.你学习前端多久了? 2.你在之前的话有去没有去规划过你将来毕业之后要往哪个方向去发展吗? 3.你学了这几个月,然后你觉得你自己在哪一方面能力比较强一点。 4.有哪些数据结构? 5.说一下什么是平衡二叉树,求一个参数的一个最大深度,是多少时间复杂度。 6.冒泡的时间复杂度是多少? 7.那你框架你比较熟悉哪些? 8.有去看过那个vue的源码吗? 9.有哪些设计模式? 10.你这边的话可以实习多久?
海康一面
Momenta 一面(5月20日) 滴滴实习一面 oc http 常见请求 状态码 https区别 跨域问题 原型链 get和post的传输上限一致吗? crdt的实现 性能问题如何发现和解决 盈立证券-前端实习面经 面试官面 1.在你这个enterprise flow平台中,你将这个Vuex迁移到Pinia的核心原因是什么呢? 2.你用这个typescripe对进行了一个二次的封装,然后你的请求拦截器里面的一个token注入,以及一个错误处理的核心设计可以说一下吗? 3.我看你是自己封装了一个 useVirtualList Hook,简单讲一下它的一个逻辑,就是封装的这个是怎么进行的,是怎么进行计算的。 4.说一下就是http的一个常见的一些状态码,比如2345这些个代表什么? 5.说一下Monorepo的一个它的一个核心优势是什么吗? 6.讲一下关于数组的一些方法 7.讲一下es6里面let和const的区别 8.简单说一下HTTP和HTTPS的一个区别 9.说一下就是vue的一个生命周期 10.简单说一下flex布局 11.用flex要实现一个水平垂直居中 12.说一下css的一个盒模型 13.bfc 14.简单说一下里面px,em和一个rem的一个区别 主管面 1.你学习前端多久了? 2.你在之前的话有去没有去规划过你将来毕业之后要往哪个方向去发展吗? 3.你学了这几个月,然后你觉得你自己在哪一方面能力比较强一点。 4.有哪些数据结构? 5.说一下什么是平衡二叉树,求一个参数的一个最大深度,是多少时间复杂度。 6.冒泡的时间复杂度是多少? 7.那你框架你比较熟悉哪些? 8.有去看过那个vue的源码吗? 9.有哪些设计模式? 10.你这边的话可以实习多久? 字节一面 只有两面技术面
一、技术面问题
开发效率与工程实践
AI 提升开发效率的具体场景,
懒加载和条件渲染策略优化的背景
是否使用过 React、对 React 和 Vue3 的看法与对比
对 Node.js 的了解
Webpack 使用经验
为什么使用状态管理(解决什么问题)
使用过 EventBus 吗?和 Pinia 的区别 JavaScript 基础
JS 数组方法
手写题:数组扁平化(要求使用 reduce 方法)
输出题:事件循环机制
二、反问环节
地图相关业务
技术栈是否偏移动端(如 React Native)
关注能力:基础、学习能力、沟通能力
二、技术面问题
JavaScript 基础
事件循环机制
setTimeout(1000) 一定是 1000ms 吗?(定时不准原因)
垃圾回收机制:新生代、老生代,标记清除法
闭包及内存泄漏:泄漏表现、浏览器表现
Promise 理解
async/await 与 Promise 的关系,是否语法糖,返回值是什么
Promise.all
合并两个有序数组(手写题)
一、自我介绍
二、技术面问题 JavaScript 基础
事件循环机制
setTimeout(1000) 一定是 1000ms 吗?(定时不准原因)
垃圾回收机制:新生代、老生代,标记清除法
闭包及内存泄漏:泄漏表现、浏览器表现
Promise 理解
async/await 与 Promise 的关系,是否语法糖,返回值是什么
Promise.all
合并两个有序数组(手写题) 网络与浏览器
HTTP 状态码