<?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>百度-搜索-春招 on Last Stand</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-81/</link><description>Recent content in 百度-搜索-春招 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 31 Jan 2026 09:19:33 +0000</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-81/index.xml" rel="self" type="application/rss+xml"/><item><title>百度-搜索-春招 · 第 1 轮 · 技术面试</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-81/round-130/</link><pubDate>Sat, 31 Jan 2026 09:19:33 +0000</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-81/round-130/</guid><description>&lt;blockquote&gt;
&lt;p&gt;← 已是第一轮 · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-81/"&gt;返回本次面经&lt;/a&gt; · 已是最后一轮 →&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;本轮概述：&lt;/strong&gt; 该轮主要考察前端开发相关知识，包括动画实现、性能优化、React优化、Web Accessibility、计时器处理、WebSocket、缓存策略、国际化、兼容性问题等。题目以主观题为主，注重对核心原理和实际应用场景的理解。&lt;/p&gt;
&lt;p&gt;本轮共 18 道题。答案默认折叠，便于先自行作答。&lt;/p&gt;
&lt;h2 id="question-subjective-c97dc39dce4b"&gt;1. 实现一个动画，当用户鼠标悬停在按钮上时，按钮逐渐变大&lt;/h2&gt;
&lt;h3 id="题目要点"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;CSS transition, 动画性能优化, 硬件加速, 事件监听&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;在实现此类动画时，可以使用CSS的transition属性或JavaScript的requestAnimationFrame方法。重点在于控制动画的流畅性和性能。可以通过设置合适的过渡时间（transition-duration）和使用硬件加速（如transform: scale()）来提升性能。此外，注意避免不必要的重排和重绘，确保动画的平滑性。&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id="question-5adab921-8dfb-4a65-9f44-38ae8a70820f"&gt;2. 如何避免动画过程中的卡顿？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;题库原题：&lt;a href="https://fe.ecool.fun/topic/5adab921-8dfb-4a65-9f44-38ae8a70820f"&gt;在解决动画卡顿问题时，会引导硬件加速，那么硬件加速的原理是什么？&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="题目要点-1"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;硬件加速是指利用 GPU（图形处理单元）来执行图形和动画相关的计算任务，以减轻 CPU（中央处理单元）的负担。GPU 专为处理图形和图像的高吞吐量操作而设计，因此在执行动画和复杂图形渲染时，硬件加速可以提供更流畅的体验。&lt;/p&gt;
&lt;h4 id="原理解析"&gt;原理解析&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GPU vs CPU&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU 拥有更多的核心，适合并行处理大量计算任务，而 CPU 核心较少，更适合串行处理复杂逻辑。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;图形渲染&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU 优化了图形渲染流程，包括顶点处理、像素着色等，这些是动画和图形显示的基础。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;减少重绘和回流&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通过硬件加速，可以减少浏览器的重绘（repaint）和回流（reflow）次数，这些操作通常由 DOM 变更触发，非常消耗性能。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;合成层（Compositing Layer）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;浏览器使用合成层来合并多个层的图形，GPU 可以快速地在这些层上进行变换和动画。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CSS 属性触发&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;某些 CSS 属性，如 &lt;code&gt;transform&lt;/code&gt; 的 3D 变换（&lt;code&gt;translate3d&lt;/code&gt;、&lt;code&gt;scale3d&lt;/code&gt; 等）和 &lt;code&gt;opacity&lt;/code&gt; 动画，可以触发硬件加速。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;浏览器优化&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;浏览器会根据性能和资源情况，自动决定是否使用硬件加速。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="考察重点"&gt;考察重点&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;理解：硬件加速的基本概念和 GPU 在图形渲染中的作用。&lt;/li&gt;
&lt;li&gt;应用：知道哪些 CSS 属性可以触发硬件加速，以及如何利用它们来优化动画性能。&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;面试中可能会经常会碰到怎么解决动画卡顿的问题，然后会引导到硬件加速。那么究竟什么是硬件加速，为什么它可以提高咱们的动画效率？我们今天就来一探究竟。&lt;/p&gt;</description></item></channel></rss>