<?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-32/</link><description>Recent content in 阿里-国际电商-校招 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 27 Jun 2025 06:02:07 +0000</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/index.xml" rel="self" type="application/rss+xml"/><item><title>阿里-国际电商-校招 · 第 1 轮 · 一面</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/round-38/</link><pubDate>Fri, 27 Jun 2025 06:02:07 +0000</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/round-38/</guid><description>&lt;blockquote&gt;
&lt;p&gt;← 已是第一轮 · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/"&gt;返回本次面经&lt;/a&gt; · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/round-39/"&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;本轮共 19 道题。答案默认折叠，便于先自行作答。&lt;/p&gt;
&lt;h2 id="question-subjective-5605b7f269f9"&gt;1. 讲一下你的技术栈，为什么要学前端，如何学习前端的？&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;ol&gt;
&lt;li&gt;技术栈：
&lt;ol&gt;
&lt;li&gt;HTML/CSS：用于构建页面结构和样式。&lt;/li&gt;
&lt;li&gt;JavaScript：包括ES6+特性，用于实现页面交互。&lt;/li&gt;
&lt;li&gt;框架：熟练使用Vue.js和React，了解其生态系统（如Vue Router、Vuex、React Router、Redux）。&lt;/li&gt;
&lt;li&gt;构建工具：使用Vite和Webpack进行项目构建和优化。&lt;/li&gt;
&lt;li&gt;状态管理：使用Vuex和Redux进行状态管理。&lt;/li&gt;
&lt;li&gt;UI组件库：使用Element UI、Ant Design等。&lt;/li&gt;
&lt;li&gt;其他工具：Git、ESLint、Prettier、Jest等。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;学习动机：
&lt;ol&gt;
&lt;li&gt;前端开发结合了技术和创意，能够直接看到代码转化为用户界面，带来了即时满足感。&lt;/li&gt;
&lt;li&gt;前端领域技术更新快，充满挑战，提供了不断学习新知识的机会。&lt;/li&gt;
&lt;li&gt;对用户界面和交互设计的兴趣，希望创造良好的用户体验。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;学习方法：
&lt;ol&gt;
&lt;li&gt;在线课程：通过Coursera、Udemy、MDN Web Docs等平台学习基础知识。&lt;/li&gt;
&lt;li&gt;实践项目：通过个人项目和开源项目应用所学知识。&lt;/li&gt;
&lt;li&gt;阅读书籍：如《JavaScript高级程序设计》、《你不知道的JavaScript》。&lt;/li&gt;
&lt;li&gt;参与社区：在GitHub、Stack Overflow等社区与开发者交流，解决遇到的问题。&lt;/li&gt;
&lt;li&gt;技术博客：关注CSS-Tricks、JavaScript.info等博客，了解新技术和最佳实践。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/details&gt;
&lt;h2 id="question-ae93b62f-d9ef-46c2-8151-da164426f49f"&gt;2. 常见的H5标签有哪些 ，你是怎么用的&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;题库原题：&lt;a href="https://fe.ecool.fun/topic/ae93b62f-d9ef-46c2-8151-da164426f49f"&gt;常见的H5标签有哪些 ，你是怎么用的&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="题目要点-1"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;常见 H5 标签包括结构语义标签、文本语义标签、表单标签和媒体标签；实际使用中优先考虑语义表达和可访问性，而非样式；充分利用表单和媒体标签的原生能力以减少 JS 复杂度；&lt;code&gt;canvas&lt;/code&gt; 与 &lt;code&gt;svg&lt;/code&gt; 需根据场景选择；合理使用语义化标签能显著提升页面质量和长期可维护性。&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;参考答案&lt;/summary&gt;
&lt;p&gt;在实际工程中，H5 标签并不是“记住有哪些”，而是&lt;strong&gt;是否理解它们在语义、结构、可访问性和默认行为上的差异，并能在合适的场景中使用&lt;/strong&gt;。对标签的理解，直接影响页面结构质量、SEO 以及后续的可维护性。&lt;/p&gt;
&lt;p&gt;从结构层面看，最常用的一类是&lt;strong&gt;语义化结构标签&lt;/strong&gt;。例如 &lt;code&gt;header&lt;/code&gt;、&lt;code&gt;nav&lt;/code&gt;、&lt;code&gt;main&lt;/code&gt;、&lt;code&gt;section&lt;/code&gt;、&lt;code&gt;article&lt;/code&gt;、&lt;code&gt;aside&lt;/code&gt;、&lt;code&gt;footer&lt;/code&gt;。在页面搭建时，通常会用 &lt;code&gt;header&lt;/code&gt; 承载页面或模块级头部信息，用 &lt;code&gt;nav&lt;/code&gt; 明确标识导航区域，用 &lt;code&gt;main&lt;/code&gt; 作为页面主体的唯一入口，再用 &lt;code&gt;section&lt;/code&gt; 或 &lt;code&gt;article&lt;/code&gt; 对内容进行分块。这类标签本身不改变样式，但会向浏览器、搜索引擎和辅助技术清晰表达“这块内容的角色是什么”，比单纯使用 &lt;code&gt;div&lt;/code&gt; 更具表达力。&lt;/p&gt;</description></item><item><title>阿里-国际电商-校招 · 第 1 轮 · 二面</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/round-39/</link><pubDate>Fri, 27 Jun 2025 06:02:07 +0000</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/round-39/</guid><description>&lt;blockquote&gt;
&lt;p&gt;← &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/round-38/"&gt;第 1 轮&lt;/a&gt; · &lt;a href="https://amatsuzero.github.io/LastStand/posts/frontend/interview-experiences/experience-32/"&gt;返回本次面经&lt;/a&gt; · 已是最后一轮 →&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;本轮要点：&lt;/strong&gt; 本次面试主要考察校招生的基础内容&lt;/p&gt;
&lt;p&gt;本轮共 9 道题。答案默认折叠，便于先自行作答。&lt;/p&gt;
&lt;h2 id="question-subjective-52145ae489ef"&gt;1. React/Vue/Angular框架熟悉哪个？对比一下&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;我对React和Vue较为熟悉，以下是对这三大框架的对比：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;React：
&lt;ol&gt;
&lt;li&gt;优点：
&lt;ol&gt;
&lt;li&gt;组件化：React采用组件化开发，将复杂的用户界面拆分为多个可复用的组件，提高代码的可维护性和复用性。&lt;/li&gt;
&lt;li&gt;虚拟DOM：使用虚拟DOM优化DOM操作，减少页面重绘和回流，提升性能。&lt;/li&gt;
&lt;li&gt;生态丰富：拥有庞大的生态系统，如Redux、React Router等，可满足各种复杂的开发需求。&lt;/li&gt;
&lt;li&gt;社区活跃：社区庞大，更新迅速，遇到问题时容易找到解决方案。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;缺点：
&lt;ol&gt;
&lt;li&gt;学习曲线：对初学者来说，需要学习JSX语法和组件化的思想，有一定学习成本。&lt;/li&gt;
&lt;li&gt;配置繁琐：项目搭建和配置相对复杂，需要手动配置Webpack等构建工具。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Vue：
&lt;ol&gt;
&lt;li&gt;优点：
&lt;ol&gt;
&lt;li&gt;易上手：语法简洁，文档清晰，容易上手，适合初学者快速入门。&lt;/li&gt;
&lt;li&gt;渐进式框架：可以逐步引入Vue，与现有项目或其他技术结合使用，灵活性高。&lt;/li&gt;
&lt;li&gt;模板语法：使用HTML模板，对熟悉HTML和JavaScript的开发者更友好。&lt;/li&gt;
&lt;li&gt;性能优化：也采用虚拟DOM，性能表现良好。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;缺点：
&lt;ol&gt;
&lt;li&gt;生态不够丰富：相较于React，生态和社区稍小，插件和库的选择相对有限。&lt;/li&gt;
&lt;li&gt;大型项目支持：在处理大型复杂项目时，可能不如React和Angular成熟。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Angular：
&lt;ol&gt;
&lt;li&gt;优点：
&lt;ol&gt;
&lt;li&gt;全栈解决方案：提供从前端到后端的一整套解决方案，包括路由、状态管理、表单处理等。&lt;/li&gt;
&lt;li&gt;强类型系统：基于TypeScript开发，具有强类型检查，有助于大型项目的代码维护和团队协作。&lt;/li&gt;
&lt;li&gt;依赖注入：内置依赖注入系统，方便管理组件和服务之间的依赖关系。&lt;/li&gt;
&lt;li&gt;适合企业级应用：在开发大型企业级应用时，提供了一套完整的架构和规范。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;缺点：
&lt;ol&gt;
&lt;li&gt;学习曲线陡峭：对初学者来说，需要掌握TypeScript、依赖注入、模块化等概念，学习成本较高。&lt;/li&gt;
&lt;li&gt;灵活性较低：框架较为庞大，定制化程度不如React和Vue高，不适合小型项目快速开发。&lt;/li&gt;
&lt;li&gt;社区相对较小：相较于React，社区活跃度和更新速度稍逊一筹。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/details&gt;
&lt;h2 id="question-f1a76998-d6bd-487e-ae2e-06a045f8e7aa"&gt;2. React Hooks闭包陷阱的产生原因？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;题库原题：&lt;a href="https://fe.ecool.fun/topic/f1a76998-d6bd-487e-ae2e-06a045f8e7aa"&gt;说说你对 React Hook的闭包陷阱的理解，有哪些解决方案？&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="题目要点-1"&gt;题目要点&lt;/h3&gt;
&lt;p&gt;React Hook 的闭包陷阱是一个常见的问题,它发生在使用 Hook 时,特别是在处理事件处理函数或异步操作时。&lt;/p&gt;
&lt;p&gt;闭包陷阱的本质是,在 Hook 内部定义的函数会捕获 Hook 函数执行时的状态,而不是最新的状态。这可能会导致一些意想不到的行为,比如事件处理函数无法访问最新的状态,或者异步操作使用了过期的数据。&lt;/p&gt;
&lt;p&gt;造成这个问题的原因是,React Hook 的设计使得组件函数在每次渲染时都会重新定义内部的函数,而这些函数会关闭当时的状态。&lt;/p&gt;
&lt;p&gt;解决这个问题的主要方案有以下几种:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;使用 useCallback Hook&lt;/strong&gt;:&lt;/p&gt;</description></item></channel></rss>