2026-03-18 05:38:42
腾讯前端日常实习五面面经总结如下:
一面(半小时笔试+半小时面试)基础类型判断:console.log(typeof null, typeof []),考察对JS类型的理解。
CSS布局:display属性取值、两栏固定宽中间自适应布局。
HTTP状态码:需熟悉常见状态码(如200、404、500等)及其含义。
手写Promise:考察异步编程能力,需实现基础Promise逻辑。
React/Vue组件:编写反馈鼠标位置的组件,涉及事件监听与状态管理。
TypeScript数组去重:利用类型系统实现去重逻辑。
XSS防范:需说明XSS攻击原理及防御措施(如输入过滤、CSP策略)。
跨域解决方案:列举CORS、JSONP、代理等常见方法。
输出题:考察this指向与作用域链的理解。
Node特性:如事件驱动、非阻塞I/O等。
正则表达式:将英文句子中除首单词外的首字母改为小写。
React事件绑定:若在render中直接绑定事件,每次渲染会创建新函数,导致子组件不必要的重渲染。
ES6特性:如箭头函数、let/const、解构赋值等。
Async/Await原理:基于Promise的语法糖,通过生成器函数实现同步写法。
ES5实现Promise:需模拟Promise的链式调用与状态管理。
小程序云开发优势:如免服务器运维、快速开发等。
团队角色:需结合项目经验说明自身定位(如核心开发、协调沟通等)。
CDN原理:通过分布式节点缓存静态资源,减少源站压力。
Vue/React双向绑定:Vue通过数据劫持(Object.defineProperty或Proxy)结合发布-订阅模式实现;React需手动通过setState更新状态。
Redux原理:基于单向数据流,通过dispatch(action)触发reducer更新状态,再通知视图渲染。
虚拟DOM:通过JS对象模拟DOM结构,减少直接操作真实DOM的开销。
鉴权方案:如使用openid(微信生态)或JWT(无状态令牌)实现用户身份验证。
爬虫原理:需说明请求发送、数据解析与存储逻辑,以及定时任务实现(如node-schedule)。
Koa中间件:基于洋葱圈模型,通过async/await处理异步流程。
页面白屏:检查控制台报错、网络请求、资源加载情况,结合前端监控工具(如Sentry)定位问题。
懒加载:通过IntersectionObserver或滚动事件监听实现图片/组件的延迟加载。
其他优化:如代码分割、缓存策略、减少重绘回流等。
红球概率最大化:将一个红球单独放入一个袋子,其余球放入另一个袋子,此时拿到红球的概率为1/2 + 49/100 = 74.5%。
MySQL vs MongoDB:需说明关系型数据库与非关系型数据库的适用场景(如事务支持、数据结构灵活性)。
Git Flow:需熟悉分支管理策略(如feature、release、hotfix分支的使用)。
React按需加载:通过React.lazy与Suspense实现代码分割。
服务端渲染(SSR):需说明首屏渲染原理与SEO优势。
测试方法:除手动测试外,可提及单元测试(Jest)、E2E测试(Cypress)等。
RESTful API设计:需遵循资源命名、HTTP方法使用规范,并编写接口文档(如Swagger)。
过程解析:从HTML解析、DOM树构建、CSSOM生成到渲染树绘制与布局。
实习动机:需结合个人发展目标说明(如技术提升、职业方向探索)。
云开发:如Serverless架构、低代码平台的兴起。
Vue特性:如响应式数据、组件化、指令系统等。
虚拟DOM与Diff算法:需说明同层比较与优化策略(如key的作用)。
Vue源码:可提及响应式原理、组件生命周期等模块的实现逻辑。
夯实基础:重点补全JS高级特性、网络协议、数据结构与算法等知识。
深入原理:对框架源码、浏览器机制等核心内容需进一步学习。
项目复盘:总结项目中的技术难点与解决方案,形成可复用的经验。
模拟面试:通过高频问题练习提升表达逻辑与应变能力。