尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

携程前端社招面试全记录:高频考点与项目深挖实战

携程前端社招面试全记录:高频考点与项目深挖实战 携程前端社招这事儿我自己走完一轮之后最大的感受是它不像大厂纯八股、也不像小厂纯看项目而是特别看重你把“业务场景”和“技术方案”结合讲清楚的能力。整轮面试既有基础题、有手写题也有项目追问节奏比较紧凑但问题本身不算偏很多题你平时干活遇到过、思考过就能答上来。这篇文章我把整个面试流程、高频考点、手写题思路、项目深挖的套路全部拆开来讲也把我踩过的坑一并写出来希望给后面准备携程前端社招的朋友一些可落地的参考。1. 携程前端社招的岗位特点与准备思路1.1 业务线前端的面试到底在考察什么携程作为在线旅游平台业务线覆盖酒店、机票、火车票、度假、商旅等多个板块前端团队天然会被拆到不同业务里去做支撑。我投的是偏业务方向的岗位这类岗位的核心诉求不是让你去造一套新的组件库而是希望你来了之后能快速理解业务、接手现有项目、在围绕订单和交易流程的复杂页面上保证体验和稳定性。正因为这样面试官在筛选候选人的时候看的往往不是你会多少框架而是你有没有完整参与过真实业务上线能不能把一个问题从发现、分析到落地上线讲清楚。比如你做过列表页的性能优化不要只讲“我用虚拟滚动解决了长列表卡顿”而是要讲清楚列表数据量多大、接口返回结构长什么样、首屏渲染和滚动渲染分别怎么处理、内存有没有压力、线上怎么验证优化效果。面试官追问的深度比你想象的要深但只要你确实做过、想过回答起来就不会虚。另外携程的技术栈并不是完全统一的有的团队以Vue为主有的团队在用React也有基建团队在负责微前端、低代码平台等。面业务岗时面试官不会强制要求你会两种框架但至少得有一种能讲到底层原理同时能说出主流框架之间的设计差异这个我在第四节详细说。1.2 面试前我做的准备清单和复习节奏我给自己定了两周的集中复习计划分三条线并行推进。第一条线是基础知识的系统梳理。我没有去背零散的面试题而是按照“JavaScript语言核心 - 浏览器原理 - 框架原理 - 工程化与性能 - 网络与安全”这个顺序过了一遍每个模块都搭配手写题练手。这里特别提醒一下不要只看不写比如事件循环机制你以为自己懂了但一道sleep机制、一道setTimeout和Promise混合执行的输出题就能把你打回原形。第二条线是项目复盘。我把自己近两年做的三个主要项目重新写了一遍技术方案文档包括项目背景、我的职责、技术选型原因、遇到的难题、最终方案以及数据验证结果。写完之后我模拟面试官的角色针对每个技术决策连续追问三到五层直到我答不上来为止然后再去补这块内容。这个方法对提升项目深挖的应变能力特别有效。第三条线是手写代码和算法。携程的在线笔试和现场手写环节据我了解比较偏向实用场景比如数组去重、深拷贝、防抖节流、发布订阅、Promise链式调用等。算法题通常不会出特别偏的题目但链表的常见操作、二叉树遍历、简单动态规划还是需要会。具体的题目和答题技巧我在第五节展开。2. 面试流程全还原与各轮考察重点2.1 简历初筛与在线笔试环节携程的简历筛选相对常规如果你的工作年限、技术栈、项目体量和岗位要求基本匹配通常都能拿到笔试机会。简历里最需要注意的是技术栈描述别写得太杂别把“了解”写成“熟练”因为面试官会顺着简历上写的内容去追问。在线笔试是在一个固定的平台上面做限时一到两个小时题型包括选择题、简答题和编程题。选择题覆盖的面比较广从JS基础、CSS布局到浏览器缓存都有可能出现难度属于中等偏上有些题如果不仔细推敲很容易掉坑。比如CSS里flex布局的flex-shrink和flex-basis计算规则这类题目平时写样式不一定会深入推导笔试却可能会考到。编程题一般有两到三道选择题占比不小我当时遇到的第一道题是给定一个对象数组要求按照某个字段分组并统计各组数量本质是考察reduce和Map的熟练程度第二道和二叉树的层序遍历相关第三道是手写一个带并发上限的异步任务调度器。总体上编程题更偏向考察代码风格、边界条件处理和基础数据结构能力而不是非常难的竞赛题。在线笔试的通过率我不好说具体数字但一个比较重要的感受是代码要写得规范、注释要清晰哪怕只是笔试也尽量把自己解题的思路在注释里写出来这样即使代码没完全跑通阅卷人也能看到你的思考过程。2.2 技术一面基础功底与编程能力考察一面通常是一位业务组的前端来面时间大概一小时左右。开场一般是自我介绍接着会问项目但不会问得太深更像是摸一下你的项目背景和技术栈匹配度然后就会切到基础问题。一面问到的基础题我印象比较深的有这几类说说JavaScript事件循环机制宏任务和微任务的优先级结合一道混合输出的代码题现场给出执行顺序。谈谈闭包的应用场景以及闭包可能导致的内存泄漏怎么处理。手写一个防抖函数并且要求处理this指向和参数传递。CSS方面问了一个经典问题flex实现水平垂直居中有几种方式分别需要注意什么。框架方面问到了Vue3的响应式原理和computed的缓存机制。一面给我整体的感觉是面试官不是要你一字不差背出源码而是要看你能不能把原理讲得清楚、系统、有层次。举一个例子如果问响应式原理比较好的回答结构是先说Proxy和Object.defineProperty的差异再说依赖收集和派发更新的过程最后说Vue3为什么换用Proxy以及它在性能上的收益。如果你只是说“Vue3用Proxy实现了响应式”那基本等于没答。另外一面过程中如果遇到不会的问题千万别干愣着可以主动说你对这个问题的初步理解然后结合已有的知识进行类比推理。面试官更在意的是分析过程而不是你立刻给出正确结论。这一条我在后文还会反复强调因为社招面试和校招很大的不同就在这里校招允许你不会社招则更希望看到你在未知问题面前的思考方式。2.3 技术二面项目深度与方案设计考察二面通常是你入职后会一起合作的前端负责人或者资深骨干来面这轮项目的比重会明显上升同时还会穿插一些系统设计类的题目。二面开场面试官会直接盯着你简历上写得最详细、数据最好看的那个项目开始深挖。我当时分享的是一个交易类页面从首屏三秒优化到一秒多的案例。面试官的问题从业务背景开始逐步深入到优化前为什么慢、你通过什么方式定位到瓶颈、图片和接口分别做了什么策略、Webpack层面打包为什么能变小、长列表和大量DOM节点导致滚动卡顿是怎么处理的、有没有测试过弱网环境的表现、线上监控是怎么做的。这一串问下来其实就是在验证你到底是项目的核心参与者还是旁观者。二面还有一个比较有意思的环节是场景设计题。面试官给了一个需求移动端酒店列表页需要展示大量卡片同时用户可能在下单过程中切到后台再回来你如何设计这个页面的数据请求和状态管理。这类题没有标准答案考察的是你对状态管理、缓存策略、接口请求时序、组件生命周期等知识点的综合运用。我的回答思路是先盘点需求的核心矛盾然后根据网络请求的缓存策略比如revalidateIfStale、页面状态的持久化方案、以及关键操作失败时的降级处理来展开。我把Redux/RxJS和Vuex的用法都结合进去了还提到了常见的竞态条件处理方式比如用AbortController取消过期请求。二面这个环节我的感觉是光能写页面是远远不够的面试官希望看到你具备“从整体上思考一个前端方案”的能力。你要能主动说出方案的利弊、对比过哪些替代方案、线上出问题怎么兜底而不是等着面试官一点一点逼问。2.4 三面/HR面软素质与职业匹配度如果前面技术面都顺利通过三面一般是更高级别的技术负责人或者直接是HRBP来聊时间不一定长主要看综合素质、职业规划、对岗位的意向度和稳定性。HR面经常问的问题包括为什么从上一家公司离职对下一份工作的核心期待是什么未来两到三年的技术规划如何看待加班和出差。这里有个很重要的原则真实、坦诚、正面表达。不要贬低上一家公司或者前领导也不要说“我是来学习的”这类空话。最好能把离职原因转化为对新机会的主动选择比如“我希望在更大规模的业务场景中锻炼自己尤其是复杂前端项目的性能和稳定性方面”。这个环节虽然不是技术面但也不能完全松懈。HR会从你的表达中判断你这个人是否条理清晰是否懂得换位思考是否适合团队氛围。我个人的经验是把HR面也当成一次“产品介绍”把你自己的优势、项目成果和职业规划清晰地讲出来让对方感觉到你是一个目标明确、做事靠谱的人。3. 高频基础考点深度解析3.1 JavaScript核心考点从底层机制到应用场景携程前端面试对JavaScript基础的要求不是“会写”就够而是要能从底层机制讲到应用场景。我整理几个典型的考点和答题思路供你参考。第一个是事件循环。面试官通常会让你解释setTimeout、Promise、async/await的执行顺序。这里关键要讲清楚主线程执行栈、宏任务队列、微任务队列之间的关系以及浏览器和Node环境下事件循环的差异。我建议准备一个自己总结的“执行顺序推导公式”执行一个宏任务 - 执行所有微任务 - 必要时渲染 - 取下一个宏任务。遇到代码题就按这个步骤逐步推导。第二个是闭包。常见问法有闭包是什么、它有什么优缺点、实际项目中用过吗。回答时需要引出作用域链、变量持久化、私有变量模拟等概念。更重要的是要说出“闭包引用导致的内存泄漏”怎么规避比如在addEventListener之后主动removeEventListener或者把大对象置空来释放引用。第三个是this指向。这个问题一定要结合具体场景说普通函数里的this由调用方式决定箭头函数的this由定义位置决定bind/call/apply能显式改变this指向。如果被问到事件处理函数里的this怎么保持正确也要能写出用箭头函数或bind方案的代码。第四个是异步编程的演进。从回调函数到Promise再到async/await每种方案的局限和突破是什么。比如Promise解决了“回调地狱”和错误处理不统一的问题async/await则在语法层面让异步代码更像同步代码。这里建议准备一个实际场景页面上有多个接口需要并行请求、一个接口依赖另一个接口的结果这种场景下你分别用Promise.all和async/await怎么实现。3.2 框架原理Vue和React的底层逻辑要讲到什么程度框架题是前端面试的必考项携程的考察也比较深入。如果你简历上写的是Vue就要做好被问Vue3响应式原理、diff算法、组件通信、v-model底层实现、nextTick原理的准备。如果你以React为主那么Fiber架构、Hooks实现原理、组件更新机制、受控组件与非受控组件都是需要能展开讲的。拿Vue3的响应式原理来说我建议的回答逻辑是分四步第一步reactive返回一个Proxy对象拦截get和set第二步get操作触发track把当前活跃的副作用函数比如render函数收集为依赖第三步set操作触发trigger拿到对应的依赖列表并依次执行第四步computed和watch也依赖这套响应式体系只是副作用函数的粒度不同。如果面试官追问“为什么Vue3不用Object.defineProperty”可以从数组元素变化的监听、对象新增属性的监听、性能开销等角度回答。React方向被问得比较多的是类组件生命周期和函数组件Hooks的对应关系、useEffect的依赖数组到底怎么比较、useCallback和useMemo的应用场景、React18并发特性对更新的影响。这里建议不要只背概念要能画一个简单的组件更新流程图状态变化 - 触发重新渲染 - 生成新的虚拟DOM - diff - 更新真实DOM。如果能把Fiber为什么把任务切分成可中断的小单元讲清楚会是一个很大的加分项。还要提醒一点不要框架切换得太熟练面试官只要追问某一个框架的边界情况你就很容易暴露其实只是“会用”而没“理解”。我建议准备的时候选定一个主框架深挖到底另一个框架能做到对比和迁移思路即可。3.3 浏览器渲染与前端性能优化结合业务讲才有说服力性能优化是携程这种有着高流量C端业务的公司非常关注的考点。面试官不会只问你“性能优化有哪些手段”而是会给一个具体页面问你从哪些维度去分析和优化。浏览器渲染流程是基础要能说清理style - layout - paint - composite 这条流水线以及哪些CSS属性会触发回流、哪些会触发重绘、哪些可以直接进入合成层。transform和opacity相比left和top的优势要能讲清楚。再进一步就是真实业务场景的优化策略我总结了一套可以套用的框架首屏加载资源体积、请求数量、接口延迟、渲染阻塞。运行时流畅度长列表、大量DOM节点、频繁交互、内存泄漏。稳定性错误监控、白屏检测、资源加载失败降级。每个维度都可以展开。比如资源体积这块除了常规的压缩和Tree Shaking之外还要能聊到图片的WebP/AVIF格式、骨架屏、路由级代码分割、preload和prefetch的区别、HTTP缓存里cache-control和etag的使用姿势。接口延迟这块要考虑BFF层对前端请求做聚合、SSR/SSG的选择、静态化方案、CDN缓存策略。运行时这块虚拟滚动/窗口化、IntersectionObserver做懒加载、Web Worker处理计算密集型任务都是高频切入点。我认为面试官最喜欢听到的答案是“用数据量化的结果”。简单说就是从业务现状出发指出具体指标优化前后从多少变成多少量化收益是多少。比如“首屏时间从2.8s优化到1.6s”“LCP从2.2s降到1.4s”“优化后Python日志分析不再有空白”。这样的表达才是有说服力的。3.4 网络协议与工程化基础不深但一定要广来到网络协议这一块前端工程师通常不需要像后端那样说得极其深入但HTTP的常见知识点必须有清晰的框架。HTTP缓存是一个重点需要分清强缓存和协商缓存。强缓存对应cache-control的max-age和expires协商缓存对应etag和last-modified。面试官很可能让你画一个“浏览器输入URL回车后资源加载的流程”你在描述时需要把缓存判断的环节放在DOM解析之前来讲。还有一个比较容易踩坑的点是cache-control里的no-cache不是“不缓存”而是“每次使用前都要去服务器验证一下新鲜度”。跨域问题也是必问项需要掌握几种常见方案及各自适用场景CORS尤其是preflight请求、JSONP只能GET、代理转发、postMessage、document.domain以及这些方案在本地开发和线上环境的差异。如果被问到“为什么开发时要配proxy线上反而不需要”要能随口说出原因。工程化方面Webpack和Vite的对比是热门题。要讲清楚Webpack的核心概念entry、output、loader、plugin、tapable、chunk以及Tree Shaking和Code Splitting的工作原理Vite则要讲到它基于ES Module的开发态服务——冷启动快、依赖预构建、按需加载。如果你在项目中用过micro-frontend架构也能顺带讲一下主应用和子应用之间如何通信、如何隔离沙箱。4. 现场手写代码与场景题的实战经验4.1 手写代码容易忽略的边界条件携程的现场手写代码环节面试官会在一个在线的代码编辑器里给出题目让你当场写出来并简单测试。这里的重点是不要急于大段写代码先想清楚边界条件再说思路再落笔。我记得当时有一道题是手写一个debounce函数要求支持首次立即执行leading和最后一次延迟执行trailing。这个题本身不难但很多人在边界处理上容易出错比如未处理this指向内部函数用箭头函数或者普通函数导致this丢失。未处理参数透传调用fn.apply(this, args)时漏掉了参数。未处理定时器和立即执行的开关切换走到“首次立即执行但最后一次不执行”的错误逻辑。我后来总结的一个比较稳的标准答案是function debounce(fn, wait 300, immediate false) { let timer null; return function (...args) { const callNow immediate !timer; if (timer) clearTimeout(timer); timer setTimeout(() { timer null; if (!immediate) fn.apply(this, args); }, wait); if (callNow) fn.apply(this, args); }; }写的时候还要注意如果使用了function关键字则this保留调用者上下文如果换成箭头函数this就是定义时的上下文。面试官可能会故意问你这两种写法的区别。另一个常考的手写题是深拷贝。很多人在浅拷贝和深拷贝的边界上没想清楚。一个相对完整的深拷贝实现至少需要处理基础类型直接返回、数组和对象的区分、循环引用的缓存、特殊对象如Date、RegExp、Map、Set的情况。当然如果你在项目里用了lodash.cloneDeep那么答题时可以说明“生产环境我会优先用成熟的库但它内部的思路我大致了解”然后手写一版核心逻辑展示你对深拷贝底层原理的理解。4.2 场景设计题从需求到方案的完整作答思路场景设计题是携程二面高频出现的题型和普通手写题不一样它更考验综合设计能力。我当时遇到的一道题是这样的你负责一个移动端订单列表页面用户会频繁进入、退出列表数据会不断更新同时需要保证页面滚动流畅。请你设计一个技术方案。这个题的作答思路建议按四步展开第一步确认需求边界。列表数据量有多大数据更新频率是多高是全部更新还是增量更新页面进入时是否需要请求最新数据这些都是需要在方案里主动提出来的假设。第二步分解技术点。如果数据量大可以用虚拟列表方案只渲染可视区附近的数据如果数据实时性要求高可以结合WebSocket或者SSE来推送新数据如果用户会频繁切换页面那么在activated和deactivated中做数据缓存策略避免每次进入都重新请求接口。第三步状态管理的设计。数据是应该放在组件内、页面store中还是放在一个全局的缓存层里多入口进来怎么保证数据一致性服务端返回的数据是否需要一个统一的normalize结构这些问题想清楚后代码结构会很清晰。第四步性能和容错兜底。接口失败时的重试策略、请求竞态的处理、弱网下的loading和空状态设计都属于“加分项”。能把这几层说出来说明你不是只会写UI组件而是具备系统思维。我的一个心得是场景题不会其实有一部分原因是平时没有主动去抽象自己的代码。比如你每天都在写列表页但有没有想过列表页通用的性能方案是可以沉淀成组件或工具的如果平时就把这些思考记下来面试遇到场景题时基本都是换汤不换药。4.3 并发与异步控制类题目的解题套路前端面试中有一类题目特别爱考就是“异步任务的并发控制”。比如有一个包含大量URL的数组需要你控制并发数去请求这些URL最多同时请求3个。有一组异步任务要求串行执行并且能拿到每一步的结果或者失败后能继续执行。实现一个批量查询接口的调度器避免短时间大量点击触发重复请求。这类题型的本质是让候选人在事件循环和异步流程控制的框架下设计出一个“水位令牌”式的任务调度器。核心思路是维护一个正在执行的任务集合和一个待执行的任务队列通过递归或者循环不断从队列中取出任务执行直到队列为空。我当时写的一个任务是async function runWithConcurrency(tasks, limit) { const results new Array(tasks.length); let index 0; const workers Array.from({ length: Math.min(limit, tasks.length) }, async () { while (true) { const current index; if (current tasks.length) break; results[current] await tasks[current](); } }); await Promise.all(workers); return results; }这个思路比较简洁但答题时一定要解释清楚为什么index在多worker并发下不会重复取到同一个任务因为JavaScript是单线程的index是原子操作多个异步函数虽然并发执行但执行到取任务这一段时是同步的所以不会冲突。这个细节一旦说清楚说明你对异步模型的理解是到位的。如果需要支持失败重试、超时控制、取消任务等高级特性再在这个底座上扩展即可。面试官如果继续追问说明他对这个方向有兴趣你如果能把重试退避策略指数退避和取消机制AbortController也说了基本这个环节就稳了。5. 项目深挖怎么应对还原一个真实的项目答辩5.1 项目讲述的黄金结构背景-方案-验证-反思项目深挖是整个社招面试最核心的环节也是很多候选人翻车最严重的地方。我见过太多人一上来就讲“我做了某某系统用了Vue和Element UI”这种讲法等于给自己挖坑因为面试官只会觉得你是一个功能搬运工。我后来总结了一个自己复用的“黄金结构”四个部分背景、方案、验证、反思。背景说清楚这个项目为什么存在当时的业务痛点是什么有没有竞品或历史版本的问题。背景越真实可信度越高。方案讲清楚你在这个项目里具体做了什么技术选型是什么为什么选它而不是另一个。选型理由非常关键比如“选Vite是因为老项目Webpack冷启动太慢团队日常开发体验很受影响切换到Vite后冷启动时间从几十秒降到一两秒”。验证放数据。性能指标前后对比、用户可用性提升、开发效率提升、线上bug率下降都要有量化依据。哪怕是自己采样的数据也远比“体验变好了”有说服力。反思主动说出这个项目的不足和改进方向展示你的复盘能力。比如“当时的虚拟滚动方案虽然滚动流畅了但对动态高度的支持不好下一个迭代我打算引入动态高度测量方案”。只要按这个结构准备项目面试官追问时你就有一个完整的地图可以随时取用。5.2 高频追问举例为什么这样设计、能不能换一种面试官在项目深挖环节最常问的一句话就是“为什么”。这里的高频追问我可以列几个典型为什么用WebSocket而不是轮询你用WebSocket之后有没有考虑过断线重连和心跳机制为什么选择在BFF层聚合接口而不是直接让前端并发请求多个接口BFF的部署和运维成本谁承担为什么组件库要自研而不是直接引入antd或Element UI自研组件库的维护成本和收益如何衡量为什么方案里用了localStorage而不是sessionStorage数据隔离怎么做的回答这类问题的关键不是给出一个看似完美的答案而是要展示一个“权衡”的过程。比如BFF层的选择你可以说最开始我们是前端多发几个请求硬扛但后续发现移动端弱网环境下并发请求成功率不高且接口协议由后端直接暴露给前端导致字段冗余太多所以引入BFF做聚合和裁剪。同时承认BFF层增加了Node服务维护成本所以只对有明确收益的页面使用。这样的回答既专业又真实面试官通常不会追问到死胡同里去。5.3 项目量化数据的准备技巧很多候选人项目经验丰富但一到数据量化的环节就卡壳。要么说“性能好了很多”但没有具体数字要么说“首屏快了”但不知道快了多少。这里我分享一个准备技巧提前做一轮埋点和性能采样把项目优化前后的指标数据整理成一个表格放不进简历里的就记在脑子里面试被问到时随时能说出来。我把自己常用的一些指标维度整理一下供你参考指标维度常见指标说明加载性能FCP、LCP、TTFB、FID能说明首屏体验和接口响应情况运行性能长任务耗时、FPS、卡顿率能说明交互流畅度稳定性JS错误率、白屏率、接口失败率能说明系统的健壮性工程效率构建时间、发版频率、需求交付周期能说明工程化带来的效率提升业务效果页面转化率、订单转化率、用户停留时长能说明前端工作带来的业务价值注意不是所有指标都需要做深度埋点有些数据可以从浏览器DevTools、现有监控平台和业务数据后台里拿关键是你能把“优化动作”和“指标变化”之间的因果关系讲清楚。比如你做了骨架屏就可以对比FCP和LCP的变化你改了接口缓存策略就可以对比TTFB的变化。6. 复盘踩过的坑和给后来者的几条建议6.1 我踩过的几个真实的坑第一个坑简历上写了“熟悉Vue3原理”但面试官让我手写一个极简的reactive实现时我在依赖收集那一步卡住了。不是不会而是平时没真正用代码去验证过只是停留在“看过源码解析文章”的层面。这个经历告诉我面试前一定要把核心机制亲手写一遍哪怕是一个只支持对象、get/set拦截的最小实现至少能让你在记忆层面变成“真的理解”。第二个坑项目数据说得不够扎实。我在一面的项目介绍里提到了“页面性能优化了不少”面试官紧跟着就问“优化前是多少优化后是多少中间做了哪些动作有没有考虑过网络环境差异”。我当时数据有但组织得很乱导致回答显得不自信。后面复盘时我把数据整理成了一个小文档二面再用同一个案例时明显流畅很多。第三个坑手写场景题时太着急。在线笔试和一面手写时我一上来就写代码写到一半发现漏了边界条件只好涂改重来。后来我调整了节奏先花一分钟把题目要求和边界条件写在代码注释里再根据注释逐步实现。这样不仅自己的思路更清晰也给面试官留住了“你在思考”的好印象。6.2 值得贯穿全程的三个心态把面试当成一次技术交流而不是审问。你在介绍项目时可以主动说“这块我当时也纠结了一下最后是这么定的”这比生硬地回答“对当时就是这样”要自然得多。面试官也是工程师他会更愿意和“能交流的人”聊下去。不会的题承认不会但给出思考路径。如果遇到从未听过的概念可以先说“这个概念我目前了解不深但我基于已有知识猜测它可能和某某原理有关”这比胡编乱造强很多。至少能拿到“思路分”。尽量提前做一次模拟面试。找朋友或者自己录视频都可以重点不是压题而是锻炼你在压力环境下的语言组织能力。面到后面你会发现真正败给知识点的比例并不高大部分是败给了表达混乱和紧张。6.3 面试结束后一定要做的复盘动作面完一场之后不管结果如何我都会趁记忆清晰尽快做一次复盘。复盘不是简单地回忆面试官问了什么而是把每一道答得不够好的题重新过一遍正确解法是什么、我当时为什么卡住、下次遇到同类型的题该怎么答。我会把面试题整理成一份自己的面试题库按“基础题”、“手写题”、“项目题”、“场景题”分类每道题都写下标准答案和我当时的真实反应。这样积累到两三次面试后你的知识体系会被打磨得特别完整。携程面试过程中很多问题虽然不是原题但底层考察点就那么几类只要平时底子撑住了临场就不会慌。最后再分享一个小技巧面试时给自己在桌上放一张白纸听题的时候把关键词和思路简单记下来。手写题也好、场景设计题也好能让你的回答结构清晰很多也能避免因为紧张而漏掉关键环节。这个方法我每次面试都在用效果很稳。
返回列表