<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>腾讯-CSIG一校招 on Last Stand</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/</link><description>Recent content in 腾讯-CSIG一校招 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 28 Jul 2025 14:52:54 +0000</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/index.xml" rel="self" type="application/rss+xml"/><item><title>腾讯-CSIG一校招 · 第 1 轮 · 第一轮</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/round-108/</link><pubDate>Mon, 28 Jul 2025 14:52:54 +0000</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/round-108/</guid><description>&lt;blockquote&gt;
&lt;p&gt;← 已是第一轮 · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/"&gt;返回本次面经&lt;/a&gt; · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/round-109/"&gt;第 1 轮&lt;/a&gt; →&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;本轮概述：&lt;/strong&gt; 一面主要考察前端基础，难度不大。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;面试时间：&lt;/strong&gt; 90分钟&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本轮要点：&lt;/strong&gt; 基础概念理解深入，能够解释原理和应用场景&lt;/p&gt;
&lt;p&gt;代码实现思路清晰，考虑边界情况和性能优化&lt;/p&gt;
&lt;p&gt;对前端技术栈有系统性认知，了解技术发展趋势&lt;/p&gt;
&lt;p&gt;具备解决实际问题的能力和工程化思维&lt;/p&gt;
&lt;p&gt;本轮共 12 道题。答案默认折叠，便于先自行作答。&lt;/p&gt;
&lt;h2 id="question-subjective-9d0178e8aef9"&gt;1. 为什么选择前端&lt;/h2&gt;
&lt;h3 id="题目要点"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;作为校招生，回答&amp;quot;为什么选择前端&amp;quot;时要避免空喊&amp;quot;热爱&amp;quot;或跟风，建议用&lt;strong&gt;具体经历+能力匹配+行业洞察&lt;/strong&gt;的三段式结构，既体现思考深度又展示成长潜力。&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;以下是分场景的高分回答模板：&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="版本一技术驱动型适合有项目经历的同学"&gt;&lt;strong&gt;版本一：技术驱动型（适合有项目经历的同学）&lt;/strong&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;选择前端源于两次关键经历：&lt;br&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;大一用Vue重构学院官网&lt;/strong&gt;时，发现通过组件化开发能将设计稿像素级还原，这种&amp;rsquo;所见即所得&amp;rsquo;的即时反馈让我着迷；&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;在实习中做低代码平台&lt;/strong&gt;时，用React+D3.js实现拖拽生成图表，体会到前端不仅是实现UI，更是连接用户与数据的桥梁。&lt;br&gt;
前端技术迭代快（如WebAssembly、微前端）的特点，恰好匹配我热衷通过技术解决实际问题的性格。贵司的XX业务（如电商/数据可视化）对交互体验要求极高，我的XX项目经验（举例）能快速落地。&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="版本二用户导向型适合非科班转行的同学"&gt;&lt;strong&gt;版本二：用户导向型（适合非科班转行的同学）&lt;/strong&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;虽然我是工业设计专业，但&lt;strong&gt;大三时用Figma做APP原型&lt;/strong&gt;时，发现静态设计无法验证用户真实体验。于是自学Three.js做了3D产品展示页，通过A/B测试发现3D交互使用户停留时长提升40%。这让我意识到：前端是设计落地的&amp;rsquo;最后一公里&amp;rsquo;。&lt;br&gt;
前端独有的**&amp;lsquo;技术+设计+心理学&amp;rsquo;交叉属性**（如用Framer-motion设计微交互引导用户操作），让我能用代码延续设计价值。贵司注重用户体验（如引用官网案例），我的设计背景+代码能力能提供差异化视角。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="版本三行业趋势型适合技术视野广的同学"&gt;&lt;strong&gt;版本三：行业趋势型（适合技术视野广的同学）&lt;/strong&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;选择前端是因为它是&lt;strong&gt;最接近技术变革一线&lt;/strong&gt;的领域：&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;云原生时代&lt;/strong&gt;：前端从浏览器扩展到全端（如Electron桌面应用、小程序）；&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI赋能&lt;/strong&gt;：WebGL+TF.js让前端直接运行AI模型（如实时人脸检测）；&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IoT场景&lt;/strong&gt;：前端技术控制智能家居（如用WebSerial协议与硬件通信）。&lt;br&gt;
我在&lt;strong&gt;开源项目参与过WebRTC实时互动功能开发&lt;/strong&gt;，体会到前端工程师正在定义下一代人机交互标准。贵司的XX业务（如智能硬件/元宇宙）正处于这些趋势的交汇点，我的XX技能（如WebGL/跨端开发）能直接贡献。&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id="避坑提示"&gt;&lt;strong&gt;避坑提示&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;不要只说&amp;quot;喜欢 visible 的结果&amp;quot;&lt;/strong&gt;：改为**&amp;ldquo;享受从像素级还原到性能优化的全链路挑战&amp;rdquo;**（体现技术深度）。&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;避免&amp;quot;前端简单&amp;quot;的刻板印象&lt;/strong&gt;：改为**&amp;ldquo;前端是工程复杂度最高的领域之一，需同时处理兼容性、状态管理、性能优化多端适配&amp;rdquo;**（展示认知）。&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关联公司业务&lt;/strong&gt;：提前研究官网/技术博客，比如：&amp;ldquo;注意到贵司用Next.js重构了主站，我对其中SSG/ISR的SEO优化策略很感兴趣&amp;rdquo;（体现调研）。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;最后，用&lt;strong&gt;成长型结尾&lt;/strong&gt;强化潜力：&amp;ldquo;作为校招生，我清楚自己缺乏高并发场景经验，但已系统学习Chrome DevTools性能分析，并模拟过百万级PV的SSR优化（举例），期待在贵司的实际业务中深化这些能力。&amp;rdquo;&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id="question-subjective-6610c0a2f308"&gt;2. 框架理解 - Nest.js设计思想&lt;/h2&gt;
&lt;h3 id="题目要点-1"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;分层架构、功能增强、多种设计模式应用&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;Nest.js基于Express或Fastify进行封装，采用分层架构设计。底层HTTP服务器提供基础的请求处理能力，Nest.js在此基础上添加了依赖注入、装饰器、模块化等企业级特性。这确实类似装饰器模式，每一层都在不改变核心功能的前提下增强框架能力。&lt;/p&gt;
&lt;p&gt;除了装饰器模式，还了解观察者模式（发布-订阅），常用于事件系统和状态管理；工厂模式，用于创建不同类型的对象实例；单例模式，确保全局唯一实例等。&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id="question-subjective-fff5f90bab8c"&gt;3. 闭包概念和产生原因&lt;/h2&gt;
&lt;h3 id="题目要点-2"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;词法作用域、变量访问权限、执行环境保持&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;闭包是指函数能够访问其外部作用域变量的特性。产生闭包的原因是JavaScript的词法作用域机制，函数在定义时就确定了可访问的变量范围，即使在其他执行环境中调用也能保持这种访问能力。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;function&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;createCounter&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;let&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;count&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;function&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#f92672"&gt;++&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;count&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;counter&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;createCounter&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;console&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;counter&lt;/span&gt;()); &lt;span style="color:#75715e"&gt;// 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;console&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;log&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;counter&lt;/span&gt;()); &lt;span style="color:#75715e"&gt;// 2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/details&gt;
&lt;h2 id="question-subjective-b79de4be96a2"&gt;4. 闭包内存问题及解决方案&lt;/h2&gt;
&lt;h3 id="题目要点-3"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;引用保持、垃圾回收阻塞、手动清理、变量提取&lt;/p&gt;</description></item><item><title>腾讯-CSIG一校招 · 第 1 轮 · 第二轮</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/round-109/</link><pubDate>Mon, 28 Jul 2025 14:52:54 +0000</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/round-109/</guid><description>&lt;blockquote&gt;
&lt;p&gt;← &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/round-108/"&gt;第 1 轮&lt;/a&gt; · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-66/"&gt;返回本次面经&lt;/a&gt; · 已是最后一轮 →&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;本轮概述：&lt;/strong&gt; 第二轮对技术深度有一定的考察。
对构建工具有深入理解，能够分析技术选型原因
掌握React核心概念和性能优化技巧
具备网络协议和安全知识
代码实现能力强，能够设计合理的算法和架构
理解设计模式在实际场景中的应用&lt;/p&gt;
&lt;p&gt;本轮共 14 道题。答案默认折叠，便于先自行作答。&lt;/p&gt;
&lt;h2 id="question-subjective-f1c0f4f71588"&gt;1. Node中间件的作用和使用&lt;/h2&gt;
&lt;h3 id="题目要点"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;请求拦截处理、横切关注点、链式执行、功能解耦&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;中间件是在请求和响应之间执行的函数，用于处理横切关注点。在Express/Nest.js中，中间件按顺序执行，每个中间件可以修改请求对象、响应对象，或者终止请求-响应循环。&lt;/p&gt;
&lt;p&gt;常用的中间件包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;身份验证中间件：验证用户token&lt;/li&gt;
&lt;li&gt;日志中间件：记录请求信息&lt;/li&gt;
&lt;li&gt;错误处理中间件：统一处理异常&lt;/li&gt;
&lt;li&gt;CORS中间件：处理跨域请求&lt;/li&gt;
&lt;li&gt;参数验证中间件：验证请求参数格式&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id="question-subjective-c12bd009cf82"&gt;2. 大模型的理解和应用&lt;/h2&gt;
&lt;h3 id="题目要点-1"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;语言模型、涌现能力、开发辅助、安全考虑&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;大模型是基于Transformer架构的深度学习模型，通过大规模数据训练获得强大的语言理解和生成能力。主要特点是参数量巨大、涌现能力强、通用性好。&lt;/p&gt;
&lt;p&gt;在开发中的应用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;代码生成和补全：提高开发效率&lt;/li&gt;
&lt;li&gt;文档生成：自动生成API文档和注释&lt;/li&gt;
&lt;li&gt;代码审查：发现潜在问题和优化建议&lt;/li&gt;
&lt;li&gt;需求分析：辅助理解业务逻辑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用时需要注意数据安全、结果准确性验证、成本控制等问题。&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id="question-subjective-0ea3ab62cd5f"&gt;3. Webpack vs Vite 的理解和区别&lt;/h2&gt;
&lt;h3 id="题目要点-2"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;构建原理差异、性能表现、生态成熟度、配置复杂度&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;Webpack是基于模块打包的构建工具，通过入口文件分析依赖关系，将所有资源打包成bundle。Vite是基于ES模块的构建工具，开发时利用浏览器原生ES模块支持，生产时使用Rollup打包。&lt;/p&gt;
&lt;p&gt;主要区别：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;启动速度&lt;/strong&gt;：Vite利用ES模块按需加载，启动更快；Webpack需要预先打包&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;热更新&lt;/strong&gt;：Vite基于ES模块的HMR更精确；Webpack需要重新打包相关模块&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生态系统&lt;/strong&gt;：Webpack生态更成熟，插件丰富；Vite相对较新但发展迅速&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配置复杂度&lt;/strong&gt;：Vite开箱即用，配置简单；Webpack配置相对复杂&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id="question-subjective-29f2b86eee7f"&gt;4. 项目选择构建工具的考虑&lt;/h2&gt;
&lt;h3 id="题目要点-3"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;开发体验优先、项目延续性、团队熟悉度、稳定性考虑&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;个人项目选择Vite主要考虑开发体验，启动快、热更新迅速，配置简单，适合快速原型开发。实习项目使用Webpack主要因为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;历史项目延续性，已有完整的配置和工作流&lt;/li&gt;
&lt;li&gt;团队熟悉度高，维护成本低&lt;/li&gt;
&lt;li&gt;生态系统成熟，特殊需求的插件支持更好&lt;/li&gt;
&lt;li&gt;大型项目的稳定性考虑&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id="question-subjective-4d144b12214f"&gt;5. Vite 开发环境与生产环境差异&lt;/h2&gt;
&lt;h3 id="题目要点-4"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;按需加载vs完整打包、开发体验vs生产优化、不同构建工具&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;开发环境：&lt;/p&gt;</description></item></channel></rss>