当前位置: 首页 > article >正文

三月九次前端面试复盘:当场景题成为通关密钥

三月初集中面了包括字节、美团、滴滴在内的9家公司,经历7场技术面+2场Leader面后,发现如今的面试逻辑已发生根本转变。这里分享真实经历与题目,供近期求职者参考。

一、面试形态变化:从理论背诵到实战推演

1. 八股文边缘化:

被问及事件循环、原型链等基础理论的频率不足20%

仅阿里二面要求手写Promise.all,但随后立即追问“如何优化该方法的错误处理机制?”

2. 场景题占比激增:

所有面试均涉及真实业务场景推演

高频题型:性能优化、技术选型、异常排查

二、真实场景题案例与应对思路

案例1:性能优化(美团外卖H5页)

题目:

“某城市页首屏加载3秒,如何优化至1秒内?需考虑弱网环境与低端机型。”

回答要点:

1. 诊断方向:

Lighthouse分析阻塞资源(发现未压缩的商家logo图集)

Performance录制Long Tasks(定位到第三方SDY执行耗时)

2. 优化策略:

图片转WebP并配置CDN自适应分辨率

使用动态导入延迟加载非核心SDY

植入骨架屏提升感知速度

面试官追问:

“如何验证优化方案的有效性?”

→ 接入内部监控平台对比优化前后核心指标(LCP、FID)

案例2:技术债务处理(滴滴祖传代码重构)

题目:

“现有React Class组件项目含500+文件,如何设计渐进式迁移至Hooks方案?”

技术方案:

1. 渐进策略:

新组件强制使用Hooks,旧组件通过HOC封装

使用jscodeshift自动化转换基础组件

2. 质量保障:

配置ESLint规则集限制Class语法新增

建立Code Review Checklist审查关键模式

3. 风险控制:

新旧方案AB测试对比渲染性能

Sentry异常监控专项看板

案例3:前沿技术融合(字节直播场景)

题目:

“直播间礼物特效导致部分安卓机闪退,如何快速定位并解决?”

排查路径:

1. 现象分析:

通过用户行为埋点锁定崩溃机型(集中在骁龙888+Chrome 90)

使用Charles重放请求复现问题

2. 技术手段:

开启WebGL调试扩展捕捉渲染异常

使用Perfetto分析GPU指令流

3. 解决方案:

特效分级:低端机禁用粒子系统

内存控制:植入WebAssembly内存预警机制

三、场景题备战建议

1. 构建案例库:

整理过往项目的技术决策文档(含利弊分析)

收集大厂技术博客中的事故复盘(如《B站容灾方案设计》)

2. 模拟推演训练:

用真实线上问题练习(如“某页面iOS滚动卡顿”)

尝试从多维度拆解:技术方案、数据验证、风险评估

3. 技术表达升级:

使用STAR法则结构化表达(Situation-Task-Action-Result)

关键指标量化:“通过懒加载节省带宽30%”优于“性能提升明显”

四、可分享资源说明

在准备过程中,我整理了高频场景题集(含解题思路),覆盖性能优化、架构设计、异常排查等方向,全总结成了PDF,都可以直接拿去背,有需要的点击【传送门】免费领取文档。建议结合自身项目经历调整答案,避免生搬硬套。

场景题目预览

  • 请求失败会弹出一个 toast,如何保证批量请求失败,只弹出一个 toast

  • 如何减少项目里面 if-els

  • babel-runtime 作用是啥

  • 如何实现预览 PDF 文件

  • 如何在划词选择的文本上添加右键菜单(划词:鼠标滑动选 择一组字符,对组字符进行操作)

  • 富文本里面,是如何做到划词的(鼠标滑动选择一组字 符,对组字符进行操作)?

  • 如何做好前端监控方案

  • 如何标准化处理线上用户反馈的问题

  • px 如何转为 rem

  • 浏览器有同源策略,但是为何 cdn 请求资源的时候不会有 跨域限制

  • cookie 可以实现不同域共享吗

  • axios 是否可以取消请求

  • 前端如何实现折叠面板效果?

  • dom 里面,如何判定a元素是否是b元素的子元

  • 判断一个对象是否为空,包含了其原型链上是否有自定义 数据或者方法。该如何判定?

  • js 如何判空? 「空」包含了:空数组、空对象、空字符 串、0、undefined、null、空 map、空set,都属于为空的数据

  • css 实现翻牌效果

  • 如何清理源码里面没有被应用的代码, 主要是 JS、TS、 CSS 代码

  • 前端应用 如何做国际化?

  • 应用如何做应用灰度发

  • [微前端] 为何通常在 微前端 应用隔离, 不选择 iframe 方案

  • [微前端] Qiankun 是如何做 JS 隔离的

  • [微前端] 微前端架构一般是如何做 JavaScript隔离

  • [React]循环渲染中 为什么推荐不用 index 做 key

  • [React]如何避免使用 context 的时候,引起整个挂载节 点树的重新渲染

  • 前端如何实现截图?

  • 当QPS达到峰值时,该如何处理?

  • JS 超过 Number 最大值的数怎么处理?

  • 使用同一个链接,如何实现 PC 打开是 web 应用、手机打开是一个 H5 应用?

  • 如何保证用户的使用体验

  • 如何解决页面请求接口大规模并发问题

  • 设计一套全站请求耗时统计工具

  • 大文件上传了解多少

  • H5 如何解决移动端适配问题

  • 站点一键换肤的实现方式有哪些?

  • 如何实现网页加载进度条?

  • 常见图片懒加载方式有哪些?

  • cookie 构成部分有哪些

  • 什么是领域模型

  • 一直在 window 上面挂东西是否有什么风险

  • 深度 SEO优化的方式有哪些,从技术层面来说

  • 小程序为什么会有两个线程

  • web 应用中如何对静态资源加载失败的场景做降级处理

  • html中前缀为 data-开头的元素属性是什么?

  • 移动端如何实现上拉加载,下拉刷新

  • 如何判断dom元素是否在可视区域

  • 前端如何用 canvas 来做电影院选票功能

  • 如何通过设置失效时间清除本地存储的数据?

  • 如果不使用脚手架,如果用 webpack 构建一个自己的 react 应用

  • 用 nodejs 实现一个命令行工具,统计输入目录下面指定代码的行数

  • package.json 里面 sideEffects 属性的作用是啥

  • script 标签上有那些属性,分别作用是啥?

  • 为什么 SPA应用都会提供一个 hash 路由,好处是什么?

  • [React]如何进行路由变化监听

  • 单点登录是是什么,具体流程是什么

  • web 网页如何禁止别人移除水印

  • 用户访问页面白屏了,原因是啥,如何排查?

  • [代码实现] JS 中如何实现大对象深度对比

  • 如何理解数据驱动视图,有哪些核心要素?vue-cli 都做了哪些事儿,有哪些功能?

  • JS 执行 100万个任务,如何保证浏览器不卡顿?

  • Eslint 代码检查的过程是啥?

  • 虚拟混动加载原理是什么, 用 JS 代码简单实现一个虚拟滚动加加载

  • [React]react-router和 原生路由区别

  • html的行内元素和块级元素的区别

  • 介绍-下requestldleCallback api

  • documentFragment api是什么,有哪些使用场景?

  • git pull 和 git fetch 有啥区别?

  • 前端如何做 页面主题色切换

  • 前端视角-如何保证系统稳定性

  • 用 JS 写一个 cookies 解析函数,输出结果为一个对象

  • vue 中 Scoped Styles 是如何实现样式隔离的, 原理是 啥?

  • 样式隔离方式有哪些

  • ts 项目中,如何使用 node_modules 里面定义的全局类型 包到自己项目 src 下面使用?

  • 不同标签页或窗口间的 【主动推送消息机制】 的方式有哪 (不借助服务端) ?

  • [React]在 react 项目开发过程中,是否可以不用 react- router,使用浏览器原生 history 路由来组织页面路由?

  • 在表单校验场景中,如何实现页面视口滚动到报错的位置

  • 如何一次性渲染十万条数据还能保证页面不卡顿

  • [webpack]打包时 hash 码是如何生成的

  • 如何从 0到1搭建前端基建

  • 你在开发过程中,使用过哪些 TS 的特性或者能力?

  • JS 的加载会阻塞浏览器渲染吗?

  • 浏览器对队头阻塞有什么优化?

  • Webpack 项目中通过 script 标签引入资源,在项目中如何 处理?

  • 应用上线后,怎么通知用户刷新当前页面?

  • Eslint 代码检查的过程是啥?

  • 如何检测网页空闲状态(一定时间内无操作)

  • 为什么 Vite 速度比 Webpack 快?

  • 列表分页,快速翻页下的竞态问题

  • JS 执行 100 万个任务, 如何保证浏览器不卡顿?

  • git 仓库迁移应该怎么操作

  • 如何禁止别人调试自己的前端页面代

  • web 系统里面,如何对图片进行优化?

  • OAuth2.0 是什么登录方式 单点登录是如何实现的? 常见的登录鉴权方式有哪些?

  • 需要在跨域请求中携带另外一个域名下的 Cookie 该如何 操作?

  • vite 和 webpack 在热更新上有啥区别?

  • 封装一个请求超时,发起重试的代码

  • 前端如何设置请求超时时间 timeout

  • nodejs 如何充分利用多核 CPU?

  • 后端一次性返回树形结构数据,数据量非常大,前端该如 何处理?

  • 你认为组件封装的一些基本准则是什么?

  • 页面加载速度提升(性能优化) 应该从哪些反向来思考?

  • 前端日志埋点 SDK 设计思路

  • token 进行身份验证了解多少?

  • 在前端应用如何进行权限设计?

  • [低代码】代码平台一般渲染是如何设计的?

  • [低代码】代码平台一般底层协议是怎么设计的

  • [Webpack]有哪些优化项目的手段?

  • IndexedDB 存储空间大小是如何约束的?

  • 浏览器的存储有哪些

  • [Webpack]如何打包运行时chunk,. 且在项目工程 中,如何去加载这个运行时chunk?

  • 为何现在市面上做表格渲染可视化技术的,大多数都是 canvas ,而很少用svg的?

  • 在你的项目中,使用过哪些 webpack plugin,说一下他 们的作用

  • 在你的项目中,使用过哪些 webpack loader, 说一下他 们的作用

  • [React]如何避免不必要的渲染?

  • 全局样式命名冲突和样式覆盖问题怎么解决?

  • [React]如何实现专场动画?

  • [React]从 React 层面上, 能做的性能优化有哪些?

  • [Vue]中为何不要把 v-if 和 v-for 同时用在同一个元素 上,原理是什么?

  • 将静态资源缓存在本地的方式有哪些?

  • SPA首屏加载速度慢的怎么解决

  • axios 是如何区分是 nodejs 环境还是 浏览器环境的?

  • 如何拦截 web 应用的请求

  • 前端有哪些跨页面通信方式?

 

 

 

 

 

 

相关文章:

三月九次前端面试复盘:当场景题成为通关密钥

三月初集中面了包括字节、美团、滴滴在内的9家公司,经历7场技术面2场Leader面后,发现如今的面试逻辑已发生根本转变。这里分享真实经历与题目,供近期求职者参考。 一、面试形态变化:从理论背诵到实战推演 1. 八股文边缘化&#…...

STM32 —— 嵌入式系统、通用计算机系统、物联网三层架构

目录 一、嵌入式系统的概念 二、通用计算机系统与嵌入式系统的比较 用途 硬件 软件 性能与功耗 开发与维护 三、嵌入式系统与物联网的关系 四、物联网的三层架构 1. 感知层(Perception Layer) 2. 网络层(Network Layer) …...

如何选择合适的 AI 模型?(开源 vs 商业 API,应用场景分析)

1. 引言 在 AI 迅猛发展的今天,各类 AI 模型层出不穷,从开源模型(如 DeepSeek、Llama、Qwen)到商业 API(如 OpenAI 的 ChatGPT、Anthropic 的 Claude、Google Gemini),每种方案都有其优势与适用…...

视频对讲系统中,强插和强拆;视频分发功能

强插和强拆 在视频对讲系统中,强插和强拆是两个具有特定功能的操作,具体含义如下: 强插功能:指在视频对讲过程中,具有更高权限的用户或管理员可以强行插入正在进行的通话或视频连接。例如,当小区保安室监控…...

C++输入输出流第一弹:标准输入输出流 详解(带测试代码)

目录 C输入输出流 流的四种状态(重点) 标准输入输出流 标准输入流 逗号表达式 1. 逗号表达式的基本规则 示例 2. 图片中的代码分析 关键点解析 3. 常见误区 误区 1:逗号表达式等同于逻辑与 && 误区 2:忽略输入…...

{瞎掰} 手机安装app问题:app签名,手机 or OS官方商店 其他非官方app源,安全防护 突破限制

以下,在华为安卓系统手机中,在安装app过程中得到的一些可能是错误的经验。 商品化 app 的收钱方式:通过商店来收钱,通过 app 本身提供的注册码功能来收钱,或是其他的收钱方式。 手机安装 app的特点 从官方商店里安装…...

鸿蒙NEXT项目实战-百得知识库05

代码仓地址,大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点: 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…...

记录一次,rabbitmq开启stomp插件之后,还是连不上15674端口的问题

原因是装在docker 里面的rabbitmq 没有映射15674端口,需重新删除容器之后重新运行 docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p 15674:15674 -p 1883:1883 -p 15675:15675 rabbitmq:版本号 进入docker容器开启插件 docker exec -it rabbitm…...

黑马node.js教程(nodejs教程)——AJAX-Day01-04.案例_地区查询——查询某个省某个城市所有地区(代码示例)

文章目录 代码示例效果 代码示例 axiosTest.html <!DOCTYPE html> <!-- 文档类型声明&#xff0c;告诉浏览器这是一个HTML5文档 --> <html lang"en"> <!-- HTML根元素&#xff0c;设置文档语言为英语 --><head> <!-- 头部区域&am…...

vue 自制列表,循环滚动

需求人员表示&#xff0c;超过高度的表格内容需要滚动展示&#xff0c;所以效果图如下&#xff1a; 自定义列表样式&#xff0c;主要是通过flex布局&#xff0c;控制 类th 与 类td 的宽度保持一致&#xff0c;标签结构还是参考了table的结构&#xff0c;由thead与tbody包裹tr再…...

【QA】模板方法模式在Qt中有哪些应用?

在 Qt 框架中&#xff0c;模板方法模式&#xff08;Template Method Pattern&#xff09;被广泛应用于框架的设计中&#xff0c;通过定义算法骨架并允许子类在不改变结构的情况下重写部分步骤。以下是 Qt 中典型的应用场景及示例&#xff1a; 1. 事件处理&#xff08;Event Ha…...

图论——kruskal算法

53. 寻宝(第七期模拟笔试) 题目描述 在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。 不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将 所有岛屿联通…...

Windows主机、虚拟机Ubuntu、开发板,三者之间文件互传

以下内容源于日常学习的整理&#xff0c;欢迎交流。 下图是Windows主机、虚拟机Ubuntu、开发者三者之间文件互传的方式示意图&#xff1a; 注意&#xff0c;下面谈及的所有方式&#xff0c;都要求两者的IP地址处于同一网段&#xff0c;涉及到的软件资源见felm。 一、Windows主…...

Flutter Dart 泛型详解

引言 在 Flutter 开发中&#xff0c;Dart 语言的泛型是一项强大且实用的特性。泛型允许我们在定义类、方法或接口时使用类型参数&#xff0c;这样可以编写更加灵活、可复用且类型安全的代码。下面将详细介绍 Dart 泛型的各个方面&#xff0c;并结合代码示例进行说明。 1. 泛型…...

Windows Docker 报错: has no HTTPS proxy,换源

pull python 3.7报错&#xff1a; 尝试拉取Docker 测试库hello world也失败 尝试使用临时镜像源&#xff0c;可以成功拉取&#xff1a; sudo docker pull docker.m.daocloud.io/hello-world说明确实是网络问题&#xff0c;需要配置镜像源&#xff0c;为了方便&#xff0c;在d…...

Java:Arrays类:操作数组的工具类

文章目录 Arrays类常见方法SetAll(); 代码排序如果数组中存储的是自定义对象 Arrays类 常见方法 SetAll(); 注意&#xff1a; 不能用新的数组接是因为修改的是原数组&#xff0c;所以完了要输出原数组发现会产生变化参数是数组下标变成灰色是因为还能简化&#xff08;Lambda…...

【面试场景题-Redis中String类型和map类型的区别】

今天在面试中碰到一个场景题&#xff1a;在 Redis 中存储 100 万用户数据时&#xff0c;使用 String 类型和 Hash&#xff08;Map&#xff09;类型的主要区别是什么&#xff1f;体现在以下几个方面&#xff1a; 1. 存储结构与内存占用 String 类型 存储方式&#xff1a;每个用…...

List附加对象

List里面的某个对象需要修改&#xff0c;赋值 可以使用ALL或者ForEach&#xff0c;All的话&#xff0c;不能直接使用赋值对象只能赋值对象的某个字段 static void Main(string[] args){List<UserData> UserDatas new List<UserData>{new UserData { Id 1, Name …...

VLLM专题(三十六)—自动前缀缓存

PagedAttention 的核心思想是将每个请求的 KV 缓存划分为 KV 块。每个块包含固定数量的标记(tokens)对应的注意力键(keys)和值(values)。PagedAttention 算法允许将这些块存储在非连续的物理内存中,从而通过按需分配内存来消除内存碎片。 为了自动缓存 KV 缓存,我们利…...

相机光学(四十七)——相纸材质

1. 光面相纸 光面相纸表面光滑&#xff0c;亮度高&#xff0c;反光性好&#xff0c;能够呈现出清晰、鲜艳的图像效果&#xff0c;适合用于表现色彩艳丽、反差要求较高的题材&#xff0c;如产品照、艺术照和风景照。然而&#xff0c;这种相纸容易沾上指纹和灰尘。 2. 绒面相纸…...

数据表100多字段如何写mapper文件的xml

编写一个包含100多个字段的插入语句通常涉及到使用<mapper>标签来定义映射规则&#xff0c;特别是在使用MyBatis这样的持久层框架时。 1. 定义<mapper>命名空间 order表 <mapper namespace"com.example.mapper.orderMapper"><!-- 插入语句 --…...

只是“更轻更薄”?不!遨游三防平板还选择“更强更韧”

当消费电子领域普遍追求“更轻更薄”的设计美学时&#xff0c;遨游三防平板不止于此&#xff0c;还选择了另一条道路——“更强更韧”。在智能制造的复杂场景中&#xff0c;三防平板需直面高温、油污、撞击与极端气候的考验。普通消费级平板因防护性能不足&#xff0c;常因环境…...

拉取镜像太慢?一文解决!

# 拉取 Docker 镜像太慢&#xff1f;一文解决&#xff01;&#x1f680;在国内使用 Docker 拉取镜像时&#xff0c;可能会遇到速度慢甚至失败的情况。别担心&#xff01;本文带你快速优化 Docker 拉取方法&#xff01;&#x1f525;01 | 确保 Docker Hub 登录认证 &#x1f510…...

基于RAGFlow本地部署DeepSeek-R1大模型与知识库:从配置到应用的全流程解析

作者&#xff1a;后端小肥肠 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; DeepSpeek服务器繁忙&#xff1f;这几种替代方案帮你流畅使用&#xff01;&#xff08;附本地部署教程&#xff09;-CSDN博客 10分钟上手…...

(分块)洛谷 P2801 教主的魔法 题解

之前学过 莫队 算法&#xff0c;其运用了分块思想&#xff1b;但是我居然是第一次写纯种的分块题目。 题意 给你一个长度为 n n n 的序列 a a a&#xff08;一开始 ∀ a i ∈ [ 1 , 1000 ] \forall a_i\in[1,1000] ∀ai​∈[1,1000]&#xff09;。要求执行 q q q 次操作&…...

[蓝桥杯 2023 省 B] 飞机降落(不会dfs的看过来)

[蓝桥杯 2023 省 B] 飞机降落 题目描述 N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti​ 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 D i D_{i} Di​ 个单位时间&#xff0c;即它最早可以于 T i T_{i} Ti​ 时刻…...

信创系统极速文件查找:locate 命令详解

原文链接&#xff1a;信创系统极速文件查找&#xff1a;locate 命令详解 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇信创终端操作系统上 locate 命令详解的文章。在 Linux 及信创终端操作系统&#xff08;如 统信 UOS、麒麟 KOS&#xff09;中&#xff0c;查找…...

C# | 超简单CSV表格读写操作(轻松将数据保存到CSV,并支持读取还原)

C# | 超简单CSV表格读写操作&#xff08;轻松将数据保存到CSV&#xff0c;并支持读取还原&#xff09; 文章目录 C# | 超简单CSV表格读写操作&#xff08;轻松将数据保存到CSV&#xff0c;并支持读取还原&#xff09;一、上位机开发中的CSV应用背景二、CSV读写实战教学1. 基本对…...

PostgreSQL:语言基础与数据库操作

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

RK3568 Android11 sh366006驱动

sh366006.c /* 谁愿压抑心中怒愤冲动咒骂这虚与伪与假从没信要屈膝面对生命纵没有别人帮一生只靠我双手让我放声疯狂叫囔今天的他 呼风可改雨不可一世太嚣张 --《不可一世》Beyond */ #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h…...