大前端面试宝典 405题 2026.4.26版

大前端面试宝典 405题 2026.4.26版

资源目录


AI 全栈 题目
1. 问题:LLM 是什么
2. 问题:目前热门 LLM 大模型
3. 问题:关于 AI 的名词解释
4. 问题:什么是 Agent
5. 问题:什么是 Agent Skills
6. 问题:什么是 OpenClaw
7. 问题:大模型在 ToB 领域中应用的常见问题
8. 问题:LLM 出现幻觉(Hallucination)的深层原因是什么
9. 问题:RAG (检索增强生成)是什么?
10. 问题:RAG(检索增强生成)的原理与工程实现方式。
11. 问题:前端实现 LLM 的流式输出。
12. 问题:Function Calling 是什么
13. 问题:Function Calling 原理流程
14. 问题:Function Calling 优缺点
15. 问题:MCP 是什么?
16. 问题:MCP 的核心结构
17. 问题:Function Calling 与 MCP 实现差异
18. 问题:Function Calling 与 MCP 对比
19. 问题:Agent 是什么
20. 问题:Agent Loop 是什么什么
21. 问题:Agent Loop 常见问题与风险
22. 问题:什么是模型微调(Fine-tuning)?
23. 问题:LLM 微调中常见的两种类型是什么?各适合什么场景?
24. 问题:LoRA 是如何实现高效微调的?
25. 问题:微调一个 LLM 需要准备哪些数据?格式上有什么要求?
26. 问题:Dify 是什么?
27. 问题:Dify 的 Workflow(工作流)是什么?
28. 问题:Dify 如何接入外部 API 或数据库?
29. 问题:Dify 的知识库(Knowledge Base)在 RAG 中起什么作用?
30. 问题:在 Dify 中,如何让一个应用支持多轮上下文对话?
31. 问题:Dify 中 智能体 和 工作流 的关系
HTML + CSS 题目
32. 问题:什么是重绘,什么是回流?如何减少回流?
33. 问题:以下代码触发了多少次回流?
34. 问题:Margin 塌陷问题如何解决?BFC 是什么? 怎么触发?
35. 问题:如何隐藏一个元素
36. 问题:overflow 不同值的区别。
37. 问题:三栏布局的实现方式(圣杯模型)
38. 问题:calc() 方法
39. 问题:实现 一个固定长宽div 在屏幕上垂直水平居中
40. 问题:渐进增强(progressive enhancement)和优雅降级(graceful degradation)
41. 问题:iframe 有哪些优缺点及使用场景
42. 问题:CSS 盒子模型
43. 问题:HTML5 的特性
44. 问题:CSS3 的特性
45. 问题:CSS 中选择器的优先级,权重计算方式。
46. 问题:HTML5 input 元素 type 属性
47. 问题:CSS 中属性的继承性
48. 问题:画一条 0.5px 的线
49. 问题:position 的值
50. 问题:什么是浮动,浮动会引起什么问题,有何解决方案?
51. 问题:line-height 和 height 的区别
52. 问题:设置一个元素的背景颜色会填充的区域。
53. 问题:inline-block、inline 和 block 的区别
54. 问题:为什么 img 是 inline 但是可以设置宽高
55. 问题:box-sizing 的作用,如何使用?
56. 问题:CSS 实现动画
57. 问题:transition 和 animation 的区别?
58. 问题:如何实现在某个容器中居中的?
59. 问题:如何改变一个 DOM 元素的字体颜色?
60. 问题:相对布局和绝对布局,position:relative 和 absolute。
61. 问题:弹性盒子 flex 布局
62. 问题:Less 和 SCSS 的区别
63. 问题:CSS3 伪类,伪元素
64. 问题:::before 和 ::after 中双冒号和单冒号的区别
65. 问题:响应式布局的实现方案
66. 问题:link 标签和 import 标签的区别?
67. 问题:块元素、行元素、置换元素的区别
68. 问题:单行元素的文本省略号实现方式
69. 问题:HTML 语义化标签
70. 问题:px,rpx,vw,vh,rem,em 的区别
Javascript 题目
71. 问题:以下哪段代码运行效率更高(隐藏类)
72. 问题:以下哪段代码效率更高(数组 – 快速模式 / 字典模式)
73. 问题:如何判断 object 为空
74. 问题:强制类型转换、隐式类型转换
75. 问题:== 和 === 的区别
76. 问题:javascript 的数据类型有哪些
77. 问题:javascript 变量在内存中的堆栈存储
78. 问题:JS 单线程设计的目的
79. 问题:如何判断 javascript 的数据类型
80. 问题:ES 每个版本引入了什么内容
81. 问题:let 声明变量的特性
82. 问题:变量提升 & 函数提升 (优先级)
83. 问题:如何判断对象相等
84. 问题:null 和 undefined 的区别
85. 问题:用 setTimeout 来实现倒计时 ,与 setInterval 的区别?
86. 问题:JS 事件循环机制 – 宏任务微任务是如何工作的?
87. 问题:事件循环 – 以下代码输出结果
88. 问题:事件循环进阶(1)
89. 问题:事件循环进阶(2)
90. 问题:事件循环进阶(3)
91. 问题:事件循环进阶(4)
92. 问题:事件循环进阶(5)
93. 问题:什么是内存泄漏
94. 问题:什么是闭包,有什么作用。
95. 问题:常用的 console 方法有哪些,JS 调试方法
96. 问题:数组去重的方法
97. 问题:清空数组的方法
98. 问题:JS 数组常见操作方式及方法
99. 问题:JS 数组 reduce 方法的使用
100. 问题:如何遍历对象
101. 问题:创建函数的几种方式
102. 问题:创建对象的几种方式
103. 问题:宿主对象、内置对象、原生对象
104. 问题:如何区分数组和对象?
105. 问题:什么是类数组(伪数组),如何将其转化为真实的数组?
106. 问题:什么是作用域链
107. 问题:作用域链如何延长
108. 问题:DOM 节点的 Attribute 和 Property 区别
109. 问题:DOM 结构操作创建、添加、移除、移动、复制、查找节点
110. 问题:DOM 的事件模型
111. 问题:事件三要素
112. 问题:如何绑定事件,解除事件
113. 问题:事件冒泡和事件捕获的区别,如何阻止。
114. 问题:事件委托
115. 问题:JavaScript 动画和 CSS3 动画有什么区别?
116. 问题:获取元素位置?
117. 问题:document.write 和 innerHTML 的区别?
118. 问题:mouseover 和 mouseenter 的区别
119. 问题:元素拖动实现方案
120. 问题:script 标签 async 和 defer 的区别
121. 问题:ES6 的继承和 ES5 的继承的区别
122. 问题:Promise
123. 问题:Promise all/allSettle/any/race 的使用场景
124. 问题:如何解决异步回调地狱
125. 问题:链式调用实现方式
126. 问题:new 操作符内在逻辑
127. 问题:bind,apply,call 的区别,及内在实现
128. 问题:Ajax 避免浏览器缓存方法
129. 问题:eval 的功能和危害
130. 问题:惰性函数
131. 问题:JS 监听对象属性的改变
132. 问题:prototype 和 __proto__ 的 区别与关系
133. 问题:原型链的实践 – 以下代码输出2的原因
134. 问题:如何理解 箭头函数 没有 this
135. 问题:上下文与 this 指向
136. 问题:上下文与 this 指向 (1)
137. 问题:上下文与 this 指向(2)
138. 问题:去除字符串首尾空格
139. 问题:Symbol 特性与作用
140. 问题:String 的 startwith 和 indexof 两种方法的区别
141. 问题:字符串转数字的方法
142. 问题:promise 和 await/async 的关系
143. 问题:Array.propertype.sort 在 V8 的实现机制
144. 问题:JS 装箱机制(auto boxing)
145. 问题:函数传值
146. 问题:不同类型宏任务的优先级
147. 问题:console.log 被重写,重新获取的方法
Typescript 题目
148. 问题:TypeScript 和 JavaScript 的主要区别。
149. 问题:TS 定义变量类型的方法
150. 问题:TypeScript 类型注解(Type Annotations)
151. 问题:TypeScript 中的 类型别名 和 交叉类型
152. 问题:TypeScript 中的接口(Interfaces)和它们的用途。
153. 问题:Typescript 接口(Interface)和类型别名(Type Aliases) 的区别
代码编程 题目
— 功能程序题 —
154. 问题:拓扑排序-求模块依赖关系
155. 问题:求笛卡尔积
156. 问题:并发任务控制
157. 问题:多维数组降为一维(数组打平)
158. 问题:找到页面所有 a标签的 href 属性
159. 问题:如何给按钮绑定两个事件
160. 问题:实现拖拉拽功能
161. 问题:原地打乱数组(数组洗牌)
162. 问题:不能用 Array.sort 方法来打乱数组的原因
163. 问题:对象深拷贝
164. 问题:判断对象是否存在循环引用
165. 问题:实现一个柯里化函数 add
166. 问题:通用柯里化高阶方法
167. 问题:字符串 “abcde” 如何反转
168. 问题:实现一个防抖函数
169. 问题:实现一个截流函数
170. 问题:实现一个方法,能上传多张图片,保持单次 n 张上传,n 张里如果有 1 张已经上传成功,然后就补上 1 张,就一直维持n 张图片同时在上传。
171. 问题:获取当前日期(年-月-日 时:分:秒)
172. 问题:实现一个 once 函数,传入函数参数只执行一次
173. 问题:实现一个私有变量,用 get 、set 可以访问,不能直接访问。
174. 问题:将原生的 ajax 封装成 promise
175. 问题:实现 sleep 效果
176. 问题:实现下载图片功能
177. 问题:实现前端添加水印
178. 问题:实现响应式数据 + 依赖收集
179. 问题:手动实现一个 instanceOf 方法
180. 问题:还原一棵树
181. 问题:实现 b 函数,使得 b.then 中能打印出 cb 的参数值
182. 问题:实现一个 set 方法,支持根据路径设置对象的属性值。
— 算法题 —
183. 问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
184. 问题:找出字符串中不含有重复字符的 最长子串 的长度。
185. 问题:给定一个字符串,判定其能否排列成回文串。
186. 问题:反转一个链表
187. 问题:二叉树的遍历
188. 问题:实现一个全排列
189. 问题:快速找到链表的中间节点
Vue 生态 题目
190. 问题:Vue2 不能监听数组下标原因
191. 问题:vue2 和 vue3 的具体区别
192. 问题:vue 的通讯方式
193. 问题:vue 的常用修饰符
194. 问题:vue2 初始化过程做了哪些事?
195. 问题:created 和 mounted 这两个生命周期的区别
196. 问题:Vue 的 $nextTick 是如何实现的
197. 问题:以下两段代码在 vue 中分别渲染多少次?为什么?
198. 问题:为什么 vue 中的 data 是一个 function 而不是普通 object?
199. 问题:Vue 的父组件和子组件生命周期钩子函数执行顺序?
200. 问题:watch 和 computed 有什么区别?
201. 问题:谈谈 computed 的机制,缓存了什么?
202. 问题:为什么 computed 不支持异步?
203. 问题:Vue3 DOM Diff 算法
204. 问题:Vue3 的最长递增子序列算法
205. 问题:vue3 中 ref 和 reactive 的区别
206. 问题:vue3 区分 ref 和 reactive 的原因
207. 问题:Vue 响应式 Observer、Dep、Watcher
208. 问题:vue3 为什么要用 proxy 替换 Object.defineproperty ?
209. 问题:什么是虚拟 DOM
210. 问题:vue2 的生命周期
211. 问题:vue3 生命周期
212. 问题:watch 怎么深度监听对象变化
213. 问题:vue2 删除数组用 delete 和 Vue.delete 有什么区别?
214. 问题:Vue3.0 编译做了哪些优化?
215. 问题:Vue3.0 新特性 —— Composition API 与 React.js 中 Hooks 的异同点
216. 问题:vue 要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
217. 问题:vue 项目脚手架
218. 问题:Vue-Router 3.x hash模式 与 history模式 的区别
219. 问题:Vue3.5 更新 – Props 响应式更新
220. 问题:Vue3.5 更新 – useTemplateRef
221. 问题:Vue3.5 更新 – watch deep
222. 问题:Vue3.6 alien-signals – 调试文件与使用方式
223. 问题:Vue3.6 alien-signals – signal
224. 问题:Vue3.6 alien-signals – 图论
225. 问题:Vue3.6 alien-signals – 建立关系的方案
226. 问题:Vue3.6 alien-signals – 依赖构建
227. 问题:Vue3.6 alien-signals – 依赖构建(源码分析)
228. 问题:Vue3.6 alien-signals – 依赖构建(手动实现)
229. 问题:Vue3.6 alien-signals – 数据信号传播
230. 问题:Vue3.6 alien-signals – 传播模型(push-pull 模型)
231. 问题:Vue3.6 alien-signals – 状态机
232. 问题:Vue3.6 alien-signals – 状态各种位运算
233. 问题:Vue3.6 alien-signals – 栈结构替换递归
234. 问题:Vue3.6 alien-signals – 染色算法 性能优化
React 生态 题目
235. 问题:React 中为什么要设计 Hook ,为了解决什么问题
236. 问题:组件的生命周期方法。
237. 问题:状态(state)和属性(props)
238. 问题:高阶组件(Higher-Order Components)
239. 问题:受控组件 和 非受控组件
240. 问题:展示组件 (Presentational component) 和 容器组件 (Container component) 区别
241. 问题:类组件(Class component) 和 函数式组件(Functional component) 区别
242. 问题:如何划分 技术组件 和 业务组件
243. 问题:什么是 React 中的上下文(Context)?它有什么作用?
244. 问题:React 是 mvvm 框架吗 ?
245. 问题:React 如何实现 mvvm?
246. 问题:redux 主要解决什么问题 及 优缺点
247. 问题:React 性能优化方案,所关联周期函数。
248. 问题:虚拟 DOM 的意义
249. 问题:react DOM Diff 算法
250. 问题:关于 Fiber 架构
251. 问题:关于 Flux
252. 问题:React 项目脚手架
253. 问题:React 组件可请求数据生命周期钩子
254. 问题:refs 的作用
255. 问题:key 在渲染列表时的作用
256. 问题:如何使用 useState Hook 来管理状态
257. 问题:如何使用 useEffect Hook 执行副作用操作
258. 问题:如何使用自定义Hook来共享逻辑
前端构建 & 工程化 题目
259. 问题:webpack 的作用
260. 问题:Webpack 的构建流程
261. 问题:Webpack 的热更新原理
262. 问题:webpack 常用 Loader
263. 问题:webpack 常用 Plugin
264. 问题:Loader 和 Plugin 的区别
265. 问题:写一个 loader
266. 问题:写一个 Plugin
267. 问题:Webpack 构建速度提升
268. 问题:Webpack 神奇注释
269. 问题:webpack 分包案例
270. 问题:Webpack 和 Vite 的区别
271. 问题:Babel 的原理
272. 问题:模块化与组件化的区别
273. 问题:CommonJS 与 ESM(ECMAScript Modules) 的区别
274. 问题:关于服务端渲染(SSR)与客户端渲染(CSR)的理解
275. 问题:单页面应用(SPA)与多页面应用(MPA)的优劣
浏览器 题目
276. 问题:V8 垃圾回收机制
277. 问题:localStorage 、sessionStorage、indexedDB 的区别
前端性能 题目
278. 问题:性能优化相关的参考指标有哪些?
279. 问题:performance 对象
280. 问题:webpack 优化前端性能
281. 问题:如何实现长缓存
282. 问题:要遍历 100000000 项的数组如何优化?
283. 问题:延迟加载的方式有哪些?
284. 问题:图片懒加载和预加载的区别
285. 问题:加载大量图片优化方案
286. 问题:CDN 能加速访问资源的原因
287. 问题:浏览器的渲染过程,DOM 树和渲染树的区别。
288. 问题:浏览器输入 URL 到页面加载显示完成全过程
289. 问题:列表无限滚动,页面逐渐卡顿,解决方案
290. 问题:域名发散
291. 问题:域名收敛
设计模式 题目
292. 问题:设计模式是什么
293. 问题:设计模式的意义
294. 问题:什么是 MVC
295. 问题:什么是 MVVM
296. 问题:有了 mvc 为什么要有 mvvm
297. 问题:实现一个 mvvm 示例
298. 问题:面向对象基本特性
299. 问题:面向对象的设计原则
300. 问题:单例模式(Singleton Pattern)
301. 问题:工厂模式(Factory Pattern)
302. 问题:建造者模式(Builder Pattern)
303. 问题:原型模式(Prototype Pattern)
304. 问题:适配器模式(Adapter Pattern)
305. 问题:装饰者模式(Decorator Pattern)
306. 问题:观察者模式(Observer Pattern)
307. 问题:策略模式(Strategy Pattern)
308. 问题:命令模式(Command Pattern)
309. 问题:状态模式(State Pattern)
310. 问题:访问者模式(Visitor Pattern)
311. 问题:模板方法模式(Template Method Pattern)
312. 问题:中介者模式(Mediator Pattern)
313. 问题:备忘录模式(Memento Pattern)
314. 问题:解释器模式(Interpreter Pattern)
315. 问题:享元模式(Flyweight Pattern)
316. 问题:责任链模式(Chain of Responsibility Pattern)
317. 问题:桥接模式(Bridge Pattern)
318. 问题:组合模式(Composite Pattern)
319. 问题:迭代器模式(Iterator Pattern)
320. 问题:代理模式(Proxy Pattern)
操作系统 题目
321. 问题:0.1 + 0.2 为什么不等于 0.3 ?
322. 问题:线程与进程的区别
323. 问题:内存中的堆(Heap)和栈(Stack)
计算机网络 题目
324. 问题:HTTP 请求方式
325. 问题:Get / Post 的区别
326. 问题:RESTful 规范
327. 问题:浏览器缓存(强缓存 / 协商缓存)
328. 问题:Cache-Control 的取值
329. 问题:常见的 HTTP 状态码以及代表的意义
330. 问题:网络状态 301、302、303 有何区别?
331. 问题:400 和 401、403 状态码
332. 问题:Http 和 Https 的区别
333. 问题:描述一下 HTTPS 的加密过程
334. 问题:Cookie 为了解决什么问题
335. 问题:Cookie 和 Session 的区别
336. 问题:TCP(传输控制协议)和 UDP(用户数据报协议)的区别
337. 问题:TCP 三次握手
338. 问题:如果 TCP 变成二次握手会导致的问题
339. 问题:TCP 的四次挥手
340. 问题:描述一下 TCP 的拥塞控制
341. 问题:什么是跨域?如何解决?
342. 问题:同源策略具体限制的具体内容
343. 问题:发起请求是浏览器做了什么。
344. 问题:XSS 攻击是什么?
345. 问题:SQL 注入
346. 问题:DDoS 攻击
347. 问题:CSRF 攻击
348. 问题:Ajax 的定义及优缺点
349. 问题:XMLHttpRequest 对象用法
350. 问题:封装一个 ajax 请求方法
351. 问题:Fetch API
352. 问题:fetch 与 XMLHttpRequest 的区别
353. 问题:请求会发送2次的原因
354. 问题:websocket
355. 问题:WebSocket 建立连接的过程
356. 问题:Websocket 支持传输的数据格式
357. 问题:Server-Sent Events (SSE)
358. 问题:Server-Sent Events (SSE) 示例代码
359. 问题:SSE 与 websocket 区别
360. 问题:http2.0
DevOps 题目
361. 问题:设计文档规范
362. 问题:ESLint 的作用
363. 问题:Git 的基本使用方法
364. 问题:git commit message 规范
365. 问题:Git Flow 工作流
366. 问题:Git 提交文件发生冲突的原因 以及 解决方法
367. 问题:本次提交误操作,具体撤销操作
368. 问题:查看查看某个文件的历史记录
369. 问题:本地工程配置文件,不需要被提交,如何处理
370. 问题:git fetch 和 git pull 的区别
371. 问题:git rebase 和 git merge 的区别
372. 问题:git reset、git revert 和 git checkout 有什么区别 ?
373. 问题:git 跟 svn 有什么区别
374. 问题:如何解决联调依赖问题
375. 问题:关于 DevOps
376. 问题:关于 Docker
服务端 题目
377. 问题:nodejs 特点
378. 问题:nodejs 作用
379. 问题:nodejs 开放跨域白名单
380. 问题:dependencies 和 devDependencies 两者区别
381. 问题:幽灵依赖是什么 及 解决方案
382. 问题:从服务器接收到 url 开始 到 返回响应结果 发生了什么事
383. 问题:Koa 和 Expreess 区别
384. 问题:nginx 配置
385. 问题:nginx 配置代理转发,解决跨域问题
386. 问题:反向代理
数据库 题目
387. 问题:数据库范式
388. 问题:mysql 和 mongoDB 的区别
389. 问题:mysql 索引规则
390. 问题:mysql 索引优缺点
391. 问题:mysql 的存储引擎
392. 问题:InnoDB 与 MyISAM 的区别
393. 问题:常用 SQL 语法
394. 问题:连表查询
395. 问题:Redis 是什么
396. 问题:kafka 是什么
397. 问题:redis 和 kafka 的区别
398. 问题:数据不用 自增ID 做数据唯一标识的原因
业务场景 题目
399. 问题:页面上有多个按钮,分别响应不同的点击事件,如何优化?
400. 问题:登录无感刷新实现方案
401. 问题:频繁切换页码,导致页码和数据不对应,解决方案。
402. 问题:webWorker 优化 100000000 数组遍历
403. 问题:requestIdleCallback 优化 100000000 数组遍历
404. 问题:虚拟列表,如果子元素高度不固定,处理方案
405. 问题:处理并发请求控制,同时最高并发 n 个请求,响应后逐个补充。
图片[1]-大前端面试宝典 405题 2026.4.26版-青知木杂货铺
图片[2]-大前端面试宝典 405题 2026.4.26版-青知木杂货铺

——本文章内容已结束——
大前端面试宝典 405题 2026.4.26版-青知木杂货铺
大前端面试宝典 405题 2026.4.26版
此内容为付费阅读,请付费后查看
金币9.99
限时特惠
金币29.99
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费阅读
已售 13
© 版权声明
THE END
喜欢就支持一下吧
点赞17 分享