跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScriptNode.jsWeChat大前端算法

前端核心面试八股文整理(含 JavaScript、Vue、React 等)

综述由AI生成系统整理了前端开发面试的核心知识点,涵盖 JavaScript、CSS、HTML、React、Vue、算法、计算机网络、Node.js、TypeScript、性能优化、安全、小程序、ES6、编程题、设计模式及工程化等十六个模块。内容包含大量高频面试题,旨在帮助开发者梳理技术体系,理解底层原理与业务决策逻辑,适用于求职准备与技术复盘。

机器人发布于 2026/4/5更新于 2026/5/2231 浏览

前端核心面试八股文整理

一、JavaScript(323 题)

  1. 不会冒泡的事件有哪些?
  2. mouseEnter 和 mouseOver 有什么区别?
  3. MessageChannel 是什么,有什么使用场景?
  4. async、await 实现原理
  5. Proxy 能够监听到对象中的对象的引用吗?
  6. 如何让 var [a, b] = {a: 1,b:2}解构赋值成功?
  7. 下面代码会输出什么?
  8. 描述下列代码的执行结果
  9. 什么是作用域链?
  10. bind、call、apply 有什么区别?如何实现一个 bind?

二、CSS(61 题)

  1. css 中的 animation、transition、transform 有什么区别?
  2. 怎么做移动端的样式适配?
  3. 相邻的两个 inline-block 节点为什么会出现间隔,该如何解决?
  4. grid 网格布局是什么?
  5. CSS3 新增了哪些特性?
  6. 怎么使用 CSS3 实现动画?
  7. 怎么理解回流跟重绘?什么场景下会触发?
  8. 什么是响应式设计?响应式设计的吗?基本原理是什么?如何进行实现?
  9. 如果使用 CSS 提高页面性能?
  10. 如何实现单行/多行文本溢出的省略样式?

三、HTML(57 题)

  1. 什么是 DOM 和 BOM?
  2. 简单描述从输入网址到页面显示的过程
  3. 一台设备的 dpr,是否是可变的?
  4. 前端该如何选择图片的格式?
  5. 前端跨页面通信,你知道哪些方法?
  6. 说说你对 Dom 树的理解
  7. 行内元素有哪些?块级元素有哪些?空 (void) 元素有那些?
  8. html 和 css 中的图片加载与渲染规则是什么样的?
  9. title 与 h1 的区别、b 与 strong 的区别、i 与 em 的区别?
  10. script 标签为什么建议放在 body 标签的底部 (defer、async)

四、React(83 题)

  1. 下面代码中,点击'+3"按钮后,age 的值是什么?
  2. React Portals 有什么用?
  3. react 和 react-dom 是什么关系?
  4. React 中为什么不直接使用 requestIdleCallback?
  5. 为什么 react 需要 fiber 架构,而 Vue 却不需要?
  6. 子组件是一个 Portal,发生点击事件能冒泡到父组件吗?
  7. 说说 React render 方法的原理?在什么时候会被触发?
  8. 说说 React 事件和原生事件的执行顺序
  9. 说说对受控组件和非受控组件的理解,以及应用场景?

五、Vue(80 题)

  1. Vue 有了数据响应式,为何还要 diff?
  2. vue3 为什么不需要时间分片?
  3. vue3 为什么要引入 Composition API?
  4. 谈谈 Vue 事件机制,并手写$on、$off、$emit、$once
  5. computed 计算值为什么还可以依赖另外一个 computed 计算值?
  6. 说一下 vm.$set 原理
  7. 怎么在 Vue 中定义全局方法?
  8. Vue 中父组件怎么监听到子组件的生命周期?
  9. 说说 vue3 中的响应式设计原理

六、算法(19 题)

  1. 最大的钻石
  2. 举例说明你对尾递归的理解,以及有哪些应用场景
  3. 去除字符串中出现次数最少的字符,不改变原字符串的顺序。
  4. 请手写'快速排序'
  5. 洗牌算法
  6. 什么是尾调用优化和尾递归?
  7. 合并 K 个升序链表
  8. 什么是时间复杂度?
  • 请手写'基数排序'
  • 请手写'桶排序'
  • 七、计算机网络(71 题)

    1. 简单描述从输入网址到页面显示的过程
    2. 说说 WebSocket 和 HTTP 的区别
    3. 说说 https 的握手过程
    4. HTTP2 中,多路复用的原理是什么?
    5. 说说你对'三次握手'、'四次挥手'的理解
    6. 为什么推荐将静态资源放到 cdn 上?
    7. 什么是 DNS 劫持?
    8. TLS 1.3 做了哪些改进?
    9. TLS1.2 握手的过程是怎样的?
    10. HTTP 报文结构是怎样的?

    八、Node.js(27 题)

    1. common.js 和 es6 中模块引入的区别?
    2. 为什么 Node 在使用 es module 时必须加上文件扩展名?
    3. 浏览器和 Node 中的事件循环有什么区别?
    4. Node 性能如何进行监控以及优化?
    5. 如果让你来设计一个分页功能,你会怎么设计?前后端如何交互?
    6. 如何实现文件上传?说说你的思路
    7. 如何实现 JWT 鉴权机制?说说你的思路
    8. 说说对中间件概念的理解,如何封装 node 中间件?
    9. 说说 Node 文件查找的优先级以及 Require 方法的文件查找策略?
    10. 说说对 Nodejs 中的事件循环机制理解?

    九、TypeScript(46 题)

    1. 说说对 TypeScript 中命名空间与模块的理解?区别?
    2. 说说你对 typescript 的理解?与 javascript 的区别?
    3. Typescript 中泛型是什么?
    4. TypeScript 中有哪些声明变量的方式?
    5. 什么是 Typescript 的方法重载?
    6. 请实现下面的 sleep 方法
    7. typescript 中的 is 关键字有什么用?
    8. TypeScript 支持的访问修饰符有哪些?
    9. 请实现下面的 myMap 方法
    10. 请实现下面的 treePath 方法

    十、性能优化(25 题)

    1. script 标签放在 header 里和放在 body 底部里有什么区别?
    2. 前端性能优化指标有哪些?怎么进行性能检测?
    3. SPA(单页应用) 首屏加载速度慢怎么解决?
    4. 如果使用 CSS 提高页面性能?
    5. 怎么进行站点内的图片性能优化?
    6. 虚拟 DOM 一定更快吗?
    7. 有些框架不用虚拟 dom,但是他们的性能也不错是为什么?
    8. 如果某个页面有几百个函数需要执行,可以怎么优化页面的性能?
    9. 讲一下 png8、png16、png32 的区别,并简单讲讲 png 的压缩原理
    10. React.memo() 和 useMemo() 的用法是什么,有哪些区别?

    十一、前端安全(21 题)

    1. 说说你对 XSS 的了解
    2. web 常见的攻击方式有哪些,以及如何进行防御?
    3. 说说你对前端鉴权的理解
    4. 如何禁止别人调试自己的前端代码?
    5. CSP(Content Security Policy) 可以解决什么问题?
    6. 前端怎么实现跨域请求?
    7. HTTPS 有哪些优点?
    8. webSocket 有哪些安全问题,应该如何应对?
    9. 什么是点击劫持?如何防范点击劫持?
    10. 什么是 Samesite Cookie 属性?

    十二、小程序(9 题)

    1. 说说微信小程序的架构?
    2. 为什么小程序里拿不到 dom 相关的 api?
    3. 小程序的双线程分别做的什么事情?
    4. 简述微信小程序原理?
    5. 微信小程序的优劣势?
    6. 小程序页面间有哪些传递数据的方法?
    7. 微信小程序 bindtap 和 catchtap 区别?
    8. 小程序 WXSS 与 CSS 的区别?
    9. 简述一下微信小程序的主要文件有哪些?

    十三、ES6(32 题)

    1. common.js 和 es6 中模块引入的区别?
    2. Map 和 Set 的用法以及区别
    3. es5 中的类和 es6 中的 class 有什么区别?
    4. 你是怎么理解 ES6 中 Decorator 的?使用场景有哪些?
    5. 你是怎么理解 ES6 中 Module 的?使用场景有哪些?
    6. 你是怎么理解 ES6 中 Proxy 的?使用场景有哪些?
    7. 怎么理解 ES6 中 Generator 的?使用场景有哪些?
    8. 你是怎么理解 ES6 中 Promise 的?使用场景有哪些?
    9. ES6 中新增的 Set、Map 两种数据结构怎么理解?
    10. ES6 中函数新增了哪些扩展?

    十四、编程题(50 题)

    1. 使用 Promise 实现红绿灯交替重复亮
    2. bind、call、apply 有什么区别?如何实现一个 bind?
    3. 说说 new 操作符具体干了什么?
    4. 如何实现上拉加载,下拉刷新?
    5. 大文件怎么实现断点续传?
    6. 什么是防抖和节流,以及如何编码实现?
    7. 说说 ajax 的原理,以及如何实现?
    8. 深拷贝浅拷贝有什么区别?怎么实现深拷贝?
    9. 用 js 实现二叉树的定义和基本操作

    十五、设计模式(7 题)

    1. 观察者模式和发布订阅模式分别是什么?有什么区别?
    2. 开发的过程中你用到过哪些设计模式?
    3. 设计模式分类
    4. 什么是 MVVM?比之 MVC 有什么区别?什么又是 MVP?
    5. 单例模式
    6. 设计模式的六大原则
    7. 工厂模式

    十六、前端工程化(34 题)

    1. package.json 文件中的 devDependencies 和 dependencies 对象有什么区别?
    2. webpack 5 的主要升级点有哪些?
    3. 说下 vite 的原理
    4. 与 webpack 类似的工具还有哪些?区别?
    5. 说说如何借助 webpack 来优化前端性能?
    6. 说说 webpack proxy 工作原理?为什么能解决跨域?
    7. 说说 webpack 的热更新是如何做到的?原理是什么?
    8. 面试官:说说 Loader 和 Plugin 的区别?编写 Loader,Plugin 的思路?
    9. 说说 webpack 中常见的 Plugin?解决了什么问题?
    10. 说说 webpack 中常见的 Loader?解决了什么问题?

    目录

    1. 前端核心面试八股文整理
    2. 一、JavaScript(323 题)
    3. 二、CSS(61 题)
    4. 三、HTML(57 题)
    5. 四、React(83 题)
    6. 五、Vue(80 题)
    7. 六、算法(19 题)
    8. 七、计算机网络(71 题)
    9. 八、Node.js(27 题)
    10. 九、TypeScript(46 题)
    11. 十、性能优化(25 题)
    12. 十一、前端安全(21 题)
    13. 十二、小程序(9 题)
    14. 十三、ES6(32 题)
    15. 十四、编程题(50 题)
    16. 十五、设计模式(7 题)
    17. 十六、前端工程化(34 题)
    • 💰 8折买阿里云服务器限时8折了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 🤖 一键搭建Deepseek满血版了解详情
    • 一键打造专属AI 智能体了解详情
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • C++物理引擎稳定性提升的关键设计原则
    • Java 程序员必读:LeetCode 热门算法核心精讲
    • AI 辅助艺术创作:风格迁移与构图生成
    • Python 面向对象编程核心概念与实战指南
    • ARIS 开源:基于 Claude Code 的全自动科研与论文工作流
    • Zuul 1.x 网关中 Ribbon 负载均衡与请求转发详解
    • 前端问卷系统评分题保存草稿报错解决方案
    • Llama 开源家族演进:从 Llama-1 到 Llama-3 技术详解
    • C++ string 类模拟实现详解
    • GitHub Copilot 接入 Figma MCP 还原设计稿生成前端代码
    • 大模型开发环境搭建与 Python 实践指南
    • Linux 内核设计中的核心思想与架构原则
    • 开源 Agent 框架选型:带管理配置端与标准化 Skill 支持
    • Go 语言核心特性与实战速成指南
    • PDFShuffler:简单高效的 PDF 页面管理工具
    • Python 实现 MCP 客户端调用高德地图天气查询示例
    • 主流 AI 编程模型区别与高效开发选型指南
    • MySQL MVCC 原理详解:从零理解并发控制
    • 从「AI改变世界」到「AI帮我改Bug」:一个小厂架构师的Agent落地实战
    • Java synchronized 关键字用法与底层原理

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • Keycode 信息

      查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

    • Escape 与 Native 编解码

      JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

    • JavaScript / HTML 格式化

      使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

    • JavaScript 压缩与混淆

      Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online