2025年前端面试题汇总

2025年前端面试题汇总

2025年的前端面试越来越注重实际应用、性能优化、安全性和新兴技术如PWA(渐进式Web应用)、Vue3/React Hooks以及AI辅助开发。基于最新搜索结果,我从可靠来源(如CSDN、GeeksforGeeks、GitHub前端手册等)汇总了高频面试题,按类别分类。每个类别选10-15道经典题,提供简要答案解析。建议结合项目经验练习,面试时强调“STAR法则”(情境-任务-行动-结果)来回答行为题。

1. HTML & CSS 基础(占比约20%,考察布局与响应式)

这些题常用于初筛,重点测试语义化和现代CSS。

题号面试题简要答案解析
1什么是语义化HTML?为什么重要?语义化HTML使用如<header><article>等标签描述内容含义,而非纯样式(如<div>)。重要性:提升SEO、可访问性(屏幕阅读器支持)和代码维护性。示例:<nav>用于导航栏。
2CSS盒模型(Box Model)有何区别?IE vs W3C?标准W3C盒模型:width/height只算内容,边距/边框/内边距外加。IE旧版:width/height包含边框和内边距。使用box-sizing: border-box统一计算。
3Flexbox 和 Grid 的区别?何时使用?Flexbox:一维布局,适合导航栏/居中。Grid:二维布局,适合复杂网格如仪表盘。示例:Flexbox display: flex; justify-content: center;;Grid display: grid; grid-template-columns: repeat(3, 1fr);
4如何实现响应式布局?使用媒体查询(@media (max-width: 768px) { ... })、相对单位(rem/em/vw)、图片自适应(max-width: 100%; height: auto;)。结合Viewport元标签:<meta name="viewport" content="width=device-width, initial-scale=1">
5CSS预处理器如Sass的优点?支持变量($primary-color: #007bff;)、嵌套、mixin,提高复用性和维护性。缺点:需编译。
6什么是CSS-in-JS?如styled-components。在JS中编写CSS,避免全局冲突,支持动态样式。示例:const Button = styled.buttonbackground: ${props => props.primary ? ‘blue’ : ‘gray’};“。
7如何优化CSS性能?减少选择器深度、使用BEM命名、压缩CSS、关键CSS内联(Critical CSS)。避免!important滥用。
8实现圣杯布局(Holy Grail Layout)。三栏布局(头-主-侧-尾),主栏自适应。使用Flexbox:.container { display: flex; } .main { flex: 1; }
9CSS动画 vs JavaScript动画?CSS:硬件加速,适合简单变换(如transition: all 0.3s;)。JS:复杂交互,精确控制(如GSAP库)。
10什么是CSS变量(Custom Properties)?动态样式,如--main-color: red; color: var(--main-color);。支持主题切换。

2. JavaScript 核心(占比约30%,考察异步与ES6+)

JS是重头戏,2025年强调ES2023/2024新特性如Temporal API。

题号面试题简要答案解析
1JS基本数据类型有哪些?7种:Number, String, Boolean, Null, Undefined, Symbol, BigInt。引用类型:Object(包括Array, Function)。使用typeof检查。
2闭包(Closure)是什么?利弊?内层函数访问外层变量,形成独立作用域。利:数据私有(如计数器)。弊:内存泄漏。解决:及时释放引用。示例:function outer() { let x=1; return function inner(){return x++;} }
3解释事件循环(Event Loop)。JS单线程:调用栈执行同步代码,微任务(Promise.then)优先宏任务(setTimeout)。示例:console.log(1); setTimeout(()=>console.log(2)); Promise.resolve().then(()=>console.log(3)); 输出1-3-2。
4Promise vs async/await?Promise:链式处理异步(如.then().catch())。async/await:语法糖,简化代码(如async function fetchData(){const res=await fetch(url);})。错误用try-catch。
5防抖(Debounce)和节流(Throttle)区别?防抖:事件触发后延迟执行(如搜索输入)。节流:固定间隔执行(如滚动)。实现:let timer; function debounce(fn, delay){clearTimeout(timer); timer=setTimeout(fn,delay);}
6什么是this?如何绑定?this指向调用者。bind/call/apply改变:fn.call(obj, arg)。箭头函数:this继承外层。
7深拷贝 vs 浅拷贝?如何实现深拷贝?浅拷贝:只复制一层(如Object.assign)。深拷贝:递归复制(如JSON.parse(JSON.stringify(obj)),但注意循环引用用Lodash深克隆)。
8let/const/var区别?var:函数作用域,可重复声明。let/const:块级,const不可变。TDZ(Temporal Dead Zone):let在声明前访问报错。
9Map/Set vs Object/Array?Map:键值对,支持任何键。Set:唯一值集合。性能:O(1)查找。示例:new Map().set(key, value)
10Proxy和Reflect的应用?Proxy:拦截操作(如响应式数据)。Reflect:标准API调用(如Reflect.get(target, prop))。Vue3 Composition API常用。
112025新特性:Temporal API?处理日期时间,避免Date痛点。如Temporal.Now.zonedDateTimeISO(),支持时区计算。

3. 框架与库(占比约25%,React/Vue/Angular高频)

2025年Vue3转型加速,React Hooks是必考。

题号面试题简要答案解析
1React Hooks vs Class组件?Hooks:函数式,简化状态管理(如useStateuseEffect)。Class:生命周期复杂。Hooks规则:顶层调用,不可条件。
2Vue3 Composition API vs Options API?Composition:逻辑复用(如setup()函数)。Options:data/methods分隔。Vue3默认Composition,支持<script setup>
3React Fiber是什么?虚拟DOM可中断渲染算法,提升响应性。支持并发模式(如Suspense)。
4Redux/Pinia状态管理原理?单向数据流:Action -> Reducer -> Store。React用Context+useReducer简化。
5虚拟DOM diff算法?React/Vue:树diff,key优化列表。O(n^3)降到O(n)。
6SSR(服务端渲染)优势?SEO友好、首屏快(如Next.js)。缺点:复杂。
7React Router vs Vue Router?声明式路由:<Route path="/home" component={Home}/>。懒加载:React.lazy()
8组件通信方式?父子:props/emit。兄弟:EventBus/Context。跨层:Zustand。
9什么是HOC(高阶组件)?复用逻辑:function withAuth(Wrapped){return props=><Wrapped {...props} />;}
10Angular依赖注入?服务注入:@Injectable() class Service{},组件constructor(private service: Service)

4. 性能优化与安全(占比15%,新兴热点)

PWA和安全是2025趋势。

题号面试题简要答案解析
1页面加载优化?减少JS/CSS体积(Tree Shaking)、懒加载(React.lazy)、CDN、Service Worker缓存。指标:FCP、LCP。
2什么是PWA?核心特性?渐进式Web App:离线支持(Cache API)、安装图标、推送通知。manifest.json + sw.js。
3XSS/CSRF攻击及防范?XSS:脚本注入,防范:转义输出(innerText)、CSP头。CSRF:伪造请求,防范:token验证。
4Webpack优化?代码分割(SplitChunks)、热重载(HMR)、babel转译ES6+。
5浏览器渲染过程?解析HTML/CSS -> 计算样式 -> 布局 -> 绘制 -> 合成。阻塞:同步JS。

5. 其他高级题(占比10%,考察综合)

题号面试题简要答案解析
1TypeScript优点?类型安全、接口定义。示例:interface User { name: string; }
2跨域问题解决方案?JSONP(script标签)、CORS(后端头)、代理(Webpack devServer)。
3浏览器缓存策略?Cache-Control、ETag、服务端缓存。强缓存 vs 协商缓存。
4Git工作流?Feature Branch:git checkout -b feature; git merge main
5单元测试工具?Jest + React Testing Library:render(<Component />); expect(screen.getByText('text')).toBeInTheDocument();

准备建议

  • 资源:GitHub Front-End-Interview-Handbook(200+题)、GreatFrontEnd平台练习。
  • 实践:LeetCode前端题、构建PWA项目。
  • 行为题:如“描述优化项目经验”,用数据量化(如“加载时间从5s降到1s”)。
  • 趋势:关注AI工具(如Copilot for Web)和WebAssembly。

这份汇总覆盖80%高频题,建议刷题+项目。祝面试顺利!如果需特定框架扩展,随时问。

文章已创建 2838

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部