> 技术文档 > 2025年前端高频面试题(含答案)_前端面试题2025及答案

2025年前端高频面试题(含答案)_前端面试题2025及答案


一、HTML/CSS(10题)

  1. 盒模型与box-sizing的作用
  2. CSS绘制三角形与梯形原理
  3. BFC触发条件与应用场景(解决外边距重叠等)
  4. Flex布局与Grid布局的适用场景对比
  5. 圣杯布局/双飞翼布局的实现与差异
  6. CSS选择器优先级与权重计算规则
  7. 伪类与伪元素的区别(如:beforevs::before
  8. CSS动画性能优化(硬件加速与will-change
  9. 响应式设计实现方案(媒体查询、视口单位等)
  10. 移动端1像素边框问题的解决方案

二、JavaScript核心(10题)

  1. 防抖与节流的区别及实现
  2. 闭包应用场景与内存泄漏风险
  3. [\'1\',\'2\',\'3\'].map(parseInt)的结果及原因
  4. JavaScript继承的多种实现方式(原型链、组合继承等)
  5. 事件循环机制与宏任务/微任务执行顺序
  6. Promise核心原理与手写实现
  7. ES6+新特性解析(如可选链、空值合并运算符等)
  8. this指向的四种绑定规则及优先级
  9. 手写深拷贝函数(解决循环引用问题)
  10. JavaScript内存泄漏的常见场景及排查方法

三、框架与工程化(10题)

  1. React列表组件中key的作用与Diff算法优化
  2. Vue3 Composition API的优势与逻辑复用
  3. React Hooks的使用规则与自定义Hook设计
  4. Vue响应式原理(Proxy与Object.defineProperty对比)
  5. 微前端架构的核心挑战(样式隔离、状态共享)
  6. Webpack Tree Shaking原理与优化配置
  7. SSR与CSR的优缺点对比及实现方案
  8. React Fiber架构的设计目标与实现原理
  9. Vuex与Redux状态管理库的异同
  10. 前端工程化中的Monorepo实践(如Turborepo)

四、性能与安全(10题)

  1. 减少页面加载时间的优化策略(资源压缩、CDN等)
  2. XSS攻击防御措施(输入过滤、CSP策略)
  3. CSRF攻击原理与Token验证机制
  4. 浏览器渲染流程与重排/重绘优化
  5. 前端资源懒加载与预加载实现
  6. Webpack分包策略与代码分割优化
  7. HTTP/2协议对前端性能的提升
  8. 前端内存泄漏检测工具(Chrome DevTools)
  9. CDN动态加速与边缘计算的应用
  10. 安全头部配置(如CSP、HSTS)

五、进阶与前沿(10题)

  1. ECMAScript 2025新特性(顶层await、Record & Tuple)
  2. WebAssembly在前端的应用场景(高性能计算、跨语言开发)
  3. TypeScript类型体操与工具类型实现
  4. PWA核心技术(Service Worker、离线缓存)
  5. 前端低代码平台的架构设计思路
  6. Web Components的标准化与浏览器支持
  7. 前端测试策略(单元测试、E2E测试框架选型)
  8. Serverless在前端部署中的应用
  9. AI工程化在前端的落地(如TensorFlow.js)
  10. 跨端渲染方案对比(React Native vs Flutter)

答案解析:

一、HTML/CSS(10题)

1. 盒模型与box-sizing的作用

盒模型组成
每个HTML元素由4部分组成:内容(content)、内边距(padding)、边框(border)、外边距(margin)。默认情况下,widthheight仅定义内容区的尺寸。

box-sizing的作用

  • content-box(默认):元素总宽度 =width+padding+border
  • border-box:元素总宽度 =width(包含paddingborder),内容区自动缩小。

示例

.box{width:200px;padding:10px;border:5px solid;box-sizing:border-box;/* 总宽度保持200px */}

应用场景

  • border-box

    常用于响应式布局,避免因paddingborder导致布局错位。


2. CSS绘制三角形与梯形原理

原理
通过设置边框的透明属性,仅保留单边颜色,形成三角形。例如:

.triangle{width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-bottom:100px solid #000;}

梯形:通过调整不同方向的边框宽度和颜色实现。

应用场景

  • 箭头指示、对话框尖角、装饰性图形。


3. BFC触发条件与应用场景

触发条件

  • overflow: hidden、float: left/rightdisplay: inline-blockposition: absolute/fixed等。

应用场景

  • 防止外边距合并:两个相邻元素的垂直外边距会重叠,BFC容器可隔离此现象。
  • 清除浮动:父元素触发BFC后,自动包含浮动子元素的高度。
  • 避免元素被浮动覆盖:非浮动元素触发BFC后,不会与浮动元素重叠。

4. Flex布局与Grid布局的适用场景对比

Flex布局

  • 适用场景:一维布局(单行或单列排列),如导航栏、卡片列表、垂直居中。
  • 核心属性:flex-directionjustify-contentalign-items

Grid布局

  • 适用场景:二维布局(多行多列),如复杂网格、仪表盘、响应式页面。
  • 核心属性:grid-template-columnsgrid-gapgrid-area

对比

  • Flex更灵活适合局部布局,Grid更适合整体页面结构。


5. 圣杯布局/双飞翼布局的实现与差异

圣杯布局

  • 实现:通过浮动、负边距和相对定位实现三栏布局,中间列优先加载。
  • 特点:HTML结构为中间列在前,左右两列通过负边距调整位置。

双飞翼布局

  • 差异:中间列添加一个内层容器,通过内层容器的margin为左右栏留出空间。

共同目标:实现三栏自适应,优先渲染主要内容。


6. CSS选择器优先级与权重计算规则

权重规则

  1. 内联样式(style=\"\") >ID选择器>类/伪类/属性选择器>标签/伪元素选择器
  2. 计算方式:(0,0,0,0)分别代表内联、ID、类、标签的计数,从左到右逐级比较。

示例

  • .class

    权重为(0,0,1,0)#id(0,1,0,0)div:hover(0,0,2,0)


7. 伪类与伪元素的区别
  • 伪类(如:hover):表示元素的动态状态(如悬停、聚焦)。
  • 伪元素(如::before):创建虚拟元素(如添加图标、装饰线)。

语法区别:伪元素使用双冒号::,伪类使用单冒号:


8. CSS动画性能优化

优化策略