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

腾讯前端面试真题

今天心情起起伏伏(2025.08.08),

  1. 小鹏汽车挂人(上次面试就感觉不招人,完全没面试氛围,但是心了;还是想要过了,毕竟是正式秋招批第一给面的,也想那个offer保底,但是…没了…)
  2. 投了京东秋招,做测试时,Tencent打电话约面(提前批),完全是抱着试试水投的,还给面了,虽然知道很有可能…,但加油,可以的,会有工作的!!!

在这里插入图片描述


以下是对腾讯前端实习面试问题的系统分类和逻辑化回答框架,帮助您在面试中结构化展示技术能力:


一、技术领域分类

面试问题
前端基础
框架原理
网络协议
性能优化
工程化
算法/数据结构

二、核心问题回答框架

1. 前端基础
问题逻辑化回答要点
虚拟DOM vs 真实DOM
1. 性能瓶颈:直接操作DOM触发重排/重绘(昂贵)
2. 解决方案:虚拟DOM作为内存中的轻量对象(计算diff)
3. 批量更新:将多个DOM操作合并为单次patch(例:列表更新)
4. 性能权衡:内存计算时间 < 浏览器渲染时间(适用于中大型应用)

| 事件循环 |

- 宏任务:script整体/setTimeout/setInterval/UI渲染/I/O
- 微任务:Promise.then/MutationObserver/queueMicrotask
- **关键点**:fetch是宏任务(但Promise回调是微任务)

在这里插入图片描述

2. React原理

React的架构演进始终围绕​​用户体验​​与​​开发效率​​双核心:从Fiber架构解决渲染阻塞问题[Stack],到Hooks重构组件开发范式,再到并发模式实现交互零延迟。最新版本通过Server Components将服务端能力引入组件层级,配合编译器级优化,使应用性能逼近理论极限。在复杂业务场景中,我们结合自动批处理选择性水合等特性,实现首屏加载<500ms的极致性能。

 2013:同步渲染(Stack Reconciler) →2017:异步渲染(Fiber架构) → 2019:并发模式(Concurrent Mode)

在这里插入图片描述
在这里插入图片描述

  • 虚拟DOM
- 内存中的轻量JS对象(`{ type: 'div', props: { className:... }, children: [...] }`- Diff算法优化策略:• 同级比较(时间复杂度O(n))• Key值复用• 组件类型比对
  • Fiber架构
- **解决痛点**:同步渲染阻塞主线程(>16ms导致掉帧)
- **核心创新**:• 链表结构(可中断/恢复)• 时间切片(5ms/任务块)• 优先级调度(用户交互>动画>数据加载)
- **双缓冲机制**:

在这里插入图片描述

在这里插入图片描述

  • 并发渲染&服务端组件

​​并发渲染通过Fiber架构的时间切片和优先级调度,使复杂界面保持60fps流畅交互;服务端组件则颠覆传统数据获取模式,将数据库访问直接集成到组件层,实现零客户端bundle的极速加载​​

在这里插入图片描述

在这里插入图片描述

| Hooks优化 |

- 内存优化:useMemo/useCallback避免重复计算
- 逻辑复用:自定义Hook解耦业务逻辑
- 渲染控制:React.memo减少重渲染

在这里插入图片描述

3. 网络协议
HTTP
状态码
缓存策略
HTTPS

| HTTPS加密 |

1. 非对称加密:交换密钥(RSA)
2. 对称加密:传输数据(AES)
3. 证书作用:验证服务端身份(防中间人攻击)

| 缓存策略 |

- 强缓存:Cache-Control/max-age(200 from memory)
- 协商缓存:ETag/Last-Modified(304 Not Modified)
4. 性能优化
场景解决方案
复杂计算阻塞
1. Web Workers:多线程执行(不阻塞UI)
2. 时间切片:将任务拆分为requestIdleCallback区块
3. 算法优化:空间换时间(记忆化)

| 首屏加载慢 |

- 资源分级:关键CSS内联/非核心JS异步
- 预加载:link rel=preload
- CDN加速:静态资源分发
5. **工程化体系
1. 构建工具:Webpack(tree-shaking) vs Vite(ESM)
2. 模块规范:CJS(require) vs ESM(import)
3. TS进阶:- 泛型:类型参数化(`type Response<T> = { data: T }`)- type vs interface:类型扩展能力不同
6. 算法/数据结构
题型解题框架
字符串两数相加
function addStrings(num1, num2) {let i = num1.length-1, j = num2.length-1;let carry = 0, res = [];while(i>=0 || j>=0 || carry) {const sum = (+num1[i--] || 0) + (+num2[j--] || 0) + carry;res.push(sum % 10);carry = Math.floor(sum / 10);}return res.reverse().join('');
}

| 组合总和(回溯) |

function combinationSum(candidates, target) {const res = [];const dfs = (start, path, sum) => {if (sum === target) res.push([...path]);if (sum >= target) return;for (let i = start; i < candidates.length; i++) {path.push(candidates[i]);dfs(i + 1, path, sum + candidates[i]); // 关键:i+1避免复用path.pop();}};dfs(0, [], 0);return res;
}

三、面试表达技巧

  1. STAR法则
    S(情境):在广告落地页优化项目中  
    T(任务):需解决首屏秒开率仅15%的问题  
    A(行动):采用ISR渲染+资源预加载+Lottie替代APNG  
    R(结果):秒开率提升至65%,曝光+10%
    
  2. 原理图解
    虚拟DOM diff过程:
    State变化
    生成新Virtual DOM
    Diff算法比对
    最小化patch
    批量更新真实DOM
  3. 避坑指南
    • React Fiber调度不是直接使用requestIdleCallback,而是模拟其逻辑
    • Array.sort在V8中:小数组用插入排序(稳定),大数组用快排(不稳定)

💡 终极话术
“我的技术知识体系建立在 深度理解原理 + 大型项目验证 基础上:

  • 通过实现简易React(含Fiber调度)理解框架设计
  • 在得物广告系统中验证性能优化方案的有效性
    这种能力可快速迁移到贵司复杂业务场景中。”

http://www.lryc.cn/news/614672.html

相关文章:

  • 锯床自动长度检测与参数闭环补偿系统
  • 坚鹏:AI智能体辅导是知行学成为AI智能体创新应用引领者的保障
  • 计算机网络:到底什么是可变长子网掩码VLSM?
  • Linux初级阶段性练习
  • 移动端开发中类似腾讯Bugly的产品推荐与比较-5款APP异常最终产品推荐-卓伊凡|bigniu
  • A100用transformers推理gpt-oss
  • 第六章第四节 PWM驱动LED呼吸灯 PWM驱动舵机 PWM驱动直流电机
  • 校招秋招春招小米在线测评小米测评题库|测评解析和攻略|题库分享
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘huggingface_hub’问题
  • Numpy科学计算与数据分析:Numpy高效数据处理与优化
  • Mac 电脑放在环境变量中的通用脚本
  • 免费PDF批量加密工具
  • 从零掌握 Java AWT:原理、实战与性能优化
  • 【沉浸式解决问题】pycharm关闭科学模式
  • 杰理ac791 [Info]: [LL_S]Recv - LL_CHANNEL_MAP_REQ
  • Python从入门到精通计划Day07: Python数据卷轴术:文件魔法与防御结界全指南
  • nlp-语义分析
  • 在 Vue 中使用 ReconnectingWebSocket实现即时通讯聊天客服功能
  • Java 使用 SSHJ 执行 SSH 命令和 SFTP 文件上传和下载
  • 【前端后端部署】将前后端项目部署到云服务器
  • Redis(④-消息队列削峰)
  • 吴恩达 深度学习笔记
  • Coze Studio 概览(九)--插件管理
  • 配电线路故障定位在线监测装置的技术解析与应用价值
  • 应急响应流程
  • 基于 C++ 的湍流数值模拟理论报告
  • 从零构建桌面写作软件的书籍管理系统:Electron + Vue 3 实战指南
  • 中小业务遭遇网络攻击,防护能力不足的解决办法​
  • electron 静默安装同时安装完成后自动启动(nsis)
  • Spark在什么情况下CBO才会判断失误,如何避免