前端求职指北
八股题
手写题
收藏
前端求职指北
八股题
手写题
收藏
八股题题库
共 348 题 · 已完成 0 题
随机模拟
未完成
已收藏
JS基础
34
浮点数精度问题
js的字符长度
this上下文
原型与原型链
继承
new操作符做了什么
讲讲js的事件循环
全局对象
js类型转换
闭包
for..in for..of区别
call apply bind 区别
导致js里this指向混乱的原因是什么?
你觉得js里this的设计怎么样?有没有什么缺点
运算符
执行上下文
词法环境
说说js的作用域
Object.create(proto) 方法
Object.assign()
Object.defineProperties 的作用
es6新特性
Set、Map、WeakSet、weakMap 的区别
箭头函数与普通函数的差异
ES6模块和Common]S模块的区别
arguments 的定义与作用
let/const/var 的底层区别
说说Proxy
Reflect 是什么?怎么用
说说promise怎么用和优缺点
js有哪些异步方法
Generator是什么怎么用
Generator和 Async/Await 原理
严格模式
TypeScript
28
type 和 interface 的区别
TypeScript 与 JavaScript 的主要区别
什么是联合类型 (|) 和交叉类型 (&)
any 和 unknown 的区别
类型断言及其使用场景
解释 keyof 和 typeof 的用法
tsconfig.json 中的 strict 模式
装饰器及其应用场景
处理第三方库没有类型定义的问题
Extract、Exclude、Pick、Omit 的区别与用法
TypeScript 基本数据类型
TypeScript 类与修饰符
抽象类
和 ES6 对比
TypeScript 函数特性
泛型的定义与使用
高级类型
命名空间 namespace
条件类型中的 extends 判断
为什么 string | null extends null 是 false?
infer 关键字的用法
映射类型中的 - + 修饰符
映射类型
类型收窄(Type Narrowing)
tsconfig.json 重要配置
TypeScript 模块化
TypeScript 中的异步处理
接口继承
CSS & HTML
19
tailwind
less sass scss 作用
em rem
小程序rpx和px在不同手机上有误差
苹果手机1px
meta标签
script标签有哪些参数?async和defer有什么区别
script link img标签的crossorigin属性作用是什么?
script标签的type="module" 有什么作用
什么是css预处理器?
语义化标签的应用场景和优势
Canvas vs SVG 的区别和选择
HTML5 表单验证和自定义验证
CSS3 动画性能优化方案
CSS 模块化和作用域方案
前端性能优化之 CSS 优化策略
解释CSS中的BEM命名方法,并展示如何使用它来组织你的样式表。
在一个复杂的页面上,用户操作导致多次不必要的DOM操作,你将如何优化它?
CSS 中如何实现一个文本打字的光标闪烁效果?
React
66
谈谈你对 React 的了解
React 中 key 的作用是什么
说说对受控组件和非受控组件的理解,以及应用场景
什么是无状态组件,与有状态组件的区别?现在还推荐这样区分吗?
说说 react 中引入 CSS 的方式有哪几种?区别?
怎么给 children 添加额外的属性?
对比类组件和函数组件,有什么本质区别?代码层面如何判断
React 组件高度抽象和复用的自由有没有代价?
为什么虚拟 DOM 会提高性能?一定能提高性能吗?
为什么说 react 更适合 B 端大型项目
React 组合能力强会带来哪些坑?
为什么说 react 的组件和逻辑抽象和复用比 vue 强
组件状态保存 keep-alive 怎么用?原理是什么?
路由懒加载原理
react 的 Link 标签和 a 标签的区别
分别讲讲 react 16 / 17 / 18 / 19 新特性
什么是 JSX?为什么浏览器无法读取 JSX
说说 jsx 转 DOM 的过程和原理
react diff 算法核心,和 vue 的 diff 有什么区别
讲讲 react 项目的性能优化
说说 hooks 的思想和原理
react hook 如何以链表存储
为什么 hook 只能写在顶层
看过 hooks 相关的草案吗
说说 react 里你常用的 hook
React 中 refs 的作用是什么
useRef 和 useState 的区别
为什么 useState 返回数组而不是对象
useState 如何实现?怎么获得下一次更新后的值
调用 setState 之后发生了什么
setState 何时同步何时异步?
useEffect 是如何实现的?
useLayoutEffect 和 useEffect 的区别
React.memo 的第二个参数是什么?作用是什么
ref / useRef / forwardRef 区别和作用
说说 useReducer 是什么,怎么用
对比 useReducer 和 useState
18 以前为什么 useState 不能批量更新,18 以后为什么可以?
react 自定义 hooks 和 Vue3 composable 本质区别?
useContext 是什么作用?有什么优缺点?
React Fiber 是什么? 说说 fiber 架构的工作原理?
为什么 react 需要 fiber 架构,而 Vue 却不需要?
讲讲 React Fiber 是如何实现更新过程可控的
react 如何确定具体场景的执行优先级
React Fiber 怎么进行任务的终止和恢复的?为什么不用 RequestldleCallback ?
详细说说 fiber 架构的 commit 阶段过程
详细说说 fiber 架构的 render 阶段过程
react 如何实现时间切片
fiber 为什么是性能飞跃
redux 的使用原则
说说 Redux 的核心方法和工作流程
redux 的优缺点
说说对 Redux 中间件的理解?常用的中间件有哪些?实现原理?
Redux 中异步的请求怎么处理
React 中组件之间进行数据通信有哪些方式?
对比 redux 和 zustand
React 中组件之间进行数据通信有哪些方式?
说说 react 的事件代理机制原理和优缺点
说说 react 事件和浏览器原生事件执行先后顺序,为什么?
react 的事件为什么要委托,有什么好处?
react 事件委托如何解决模态框的事件冒泡?
react 17 之后的事件机制有什么区别?
子组件 portal 能冒泡到父组件吗?
Redux 中的 connect 有什么作用?
说说你对 immutable 的理解?如何应用在 React 项目中
RSC react server component
Vue
16
Vuex 的核心概念和工作流程
对比 Vuex 和 Pinia
响应式开发比命令式开发有什么优势?
什么是装饰器?在 Vue 中怎么用?
如何保持组件状态、避免重复渲染?(keep-alive)
Vue 2 和 Vue 3 响应式原理的区别?为什么改用 Proxy?
Vue 的渲染过程(模板 → DOM)
Vue Router 原理?Hash 和 History 模式的区别?
如何自定义 Vue 指令?有哪些钩子函数?
Vue 应用性能优化有哪些方向?
项目中遇到过哪些 Vue 相关的难题?如何解决?
nextTick 的作用和原理?
Vue 3 响应式丢失的原因和解决方案?
ref和reactive有什么区别?为什么这样设计
ref为什么要用.value?为什么模板不需要
React 自定义 Hooks 和 Vue 3 的 composable,本质区别是什么?
浏览器
18
浏览器点击url发生什么
浏览器渲染流程
window document
requestAnimationFrame & 帧机制
重排 (Reflow) 重绘 (Repaint) 合成层
IntersectionObserver 作用
JS 执行机制 & 事件循环
浏览器缓存机制
什么是跨域?什么是同源策略?为什么需要跨域?常见解决方案
浏览器存储体系
V8垃圾回收
内存泄漏
浏览器内核
了解哪些浏览器渲染引擎?渲染机制举例
V8 引擎优化机制
JavaScript 执行性能优化
navigator.sendBeacon 是什么?怎么用
如何判断页面要离开/卸载/隐藏
网络
25
五层网络模型
七层网络模型
什么是跨域 (CORS)
为什么有时跨域会发两次请求(预检请求 OPTIONS)?到底在检什么?
Cookie 如何实现http状态管理
对比 http1.0 1.1 2.0 https
TCP协议
http缓存
常见的http状态码
TCP三次握手和四次挥手的过程。为什么挥手是四次?
ca证书是从哪里获取的?怎么保证 CA的有效性?
Charles抓包的原理
如果一个网站用了 HTTPS,但它的图片资源是用 HTTP 加载的(混用内容),浏览器会报什么错?为什么这样做不安全?
XSS 攻击的原理和防御
渲染 AI 生成的 HTML 内容时如何防范 XSS?
什么是提示词注入(Prompt Injection)?前端能做些什么来降低风险?
CSRF攻击的原理和防御
前端发送网络请求有哪几种方式
介绍并对比一下xhr axios fetch
怎么做项目层面的网络请求api封装?为什么要做?
如何使用 Fetch API 实现对流式数据的读取和中断?
如何获取上传 下载请求的进度
说说工程中常用的header
说说websocket:数据传输方式?状态码?怎么实现重连
怎么处理 WebSocket 的多连接问题?比如一个页面要同时订阅多种不同业务数据,怎么复用,保证不丢数据
Next.js
22
nextjs 是什么?适用场景?
Next.js 解决了 React 的哪些核心问题
Next.js 和 React 的区别?
Next.js 支持哪些渲染模式?
Next.js 的 SSR
什么是 React Server Components?
Next.js RSC 漏洞
use client 是做什么的?
Next.js 如何做 SEO?
Pages Router vs App Router 有什么区别?
layout.tsx 和 page.tsx 的区别?
图片优化 Image 组件的原理?
loading.tsx 的渲染时机?
路由跳转是如何避免整页刷新的?
Next.js 中如何做代码分割?
Next.js 中如何做鉴权?
middleware 能做什么?不能做什么?
Next.js 的数据请求是怎么缓存的?
fetch 在 Server Component 中和浏览器 fetch 有什么不同?
Fast Refresh 是什么?
API Routes 是什么?
Edge Runtime
工程化
20
Webpack 构建流程和原理
webpack优化代码分割产物加载速度的机制
loader plugin区别
webpack常用配置项
什么是webpack运行时
webpack 如何处理require?
Webpack 异步加载的底层原理(JSONP)
webpack 如何拆分 Chunk 动态加载?
Webpack 的持久化缓存,如何判断文件是否需要重新编译
说说webpack 联邦模块
Code Splitting 的多种方案
Babel编译原理和插件开发
Tree shaking原理和条件
介绍一下vite
Vite HMR 边界是怎么找的?
webpack vite区别
为什么 Webpack 很难做到像 Vite 那样精细的 HMR?
讲讲Rollup 的原理 特点 适用场景
讲讲Parcel
前端自动化测试策略
CI&CD
19
CI/CD流程
前端工程化的理解,如何自动化,成熟的体系应该具备哪些要素
nginx配置
cdn配置
oss 是什么?有什么作用和优势
OSS 怎么配合 CDN 做缓存刷新的主流方案
npm install后发生了什么
npm 为什么要做依赖提升?会带来什么问题?
npm vs yarn vs pnpm
模块化发展历程(AMD/CMD/UMD/ES6)
浏览器对模块脚本的加载和执行,具体什么过程和规则?
前端模块化方案有哪些?在工程中你是如何选择的?
动态 import()
前端微服务架构实践
Monorepo 项目管理
包管理和版本控制策略
说说前端代码规范 lint prettier,你怎么看?工作中怎么用?
工作中git 怎么用?pull和pull --rebase的区别
说说SemVer规则,^ 和 ~ 有什么区别?还有什么其他常用方案?
开放题&场景题
20
H5主动推送、组件更新通知、自动化发布
SSR-SSG-SPA-MPA
web worker & service worker
不同来源的 API 的数据格式不同怎么统一
与外部协作场景
从零搭建和系统设计
低代码平台
前端存储
前端调试和单测
前端通信
前端鉴权的几种方式和优缺点
国际化和本地化
大文件&长列表&大数据等优化场景
微前端
性能优化
性能监控&错误监控和上报
海报绘制
虚环境
设计思想
跨浏览器 跨终端开发的兼容性处理方案
小程序
11
小程序登录 支付
选框架 uniapp taroapp
小程序rpx和px在不同手机上有误差
小程序和h5的性能和用户体验差异对比
小程序底层架构详解
为什么小程序在复杂业务下更容易保持性能稳定?
小程序没有dom是如何渲染的
小程序开发中最常见的性能瓶颈是什么?你会怎么定位和优化?
说说小程序的性能优化方案
自定义组件和原生组件渲染有什么区别?
小程序为什么长列表特别容易卡?
AI工具
8
用过的 AI 大模型,使用方式,用了他们那些功能,觉得 AI 大模型他们存在有什么样的缺点
你对 AI Coding 的理解?
使用 AI 工具方面,你自己有没有最佳实践?
平时的 AI 工作流 是怎样的?
用过哪些 AI IDE?差异在哪?
对 Agent / MCP / Tab 补全模型 的理解?
说说 mcp 的原理和底层架构
谈谈你对 RAG 流程中前端职责的理解
AI前端开发
19
如何实现 AI 对话的流式输出(打字机效果)?
流式 Markdown 渲染有什么挑战?如何解决?(含布局抖动问题)
详细说明前端如何处理 Markdown 中的代码块高亮,以及如何支持代码的一键复制
AI 对话页面的虚拟列表如何实现?
如何实现 AI 对话的"停止生成"和"重新生成"功能?
AI 聊天界面中,新消息到达时如何平滑滚动?用户查看历史时如何处理?
在处理 AI 返回的大量文本时,如何防止页面卡顿?
SSE 和 WebSocket 在 AI 应用中如何选择?
介绍一下 Web Worker 在 AI 前端应用中的使用场景
在渲染 AI 生成的 HTML 内容时如何防范 XSS 攻击?
什么是提示词注入?前端能做些什么来降低风险?
AI 应用如何处理长对话的上下文限制?
如何设计 Prompt 模板管理系统?
如果要实现类似 Notion AI 的斜杠菜单,设计思路是什么?
你们项目里是如何处理大模型响应慢的问题?前端有哪些优化手段?
性能监控中,针对 AI 应用有哪些特有的指标?
谈谈 AI 原生应用与传统应用在交互设计上的本质区别
性能监控中,针对 AI 应用有哪些特有的指标?
谈谈 AI 原生应用与传统应用在交互设计上的本质区别
技术选型
8
框架 vue/react/nextjs
模块化方案
SSR vs CSR vs SSG
SPA VS MPA
Redux VS Zustand
Vuex VS Pinia
移动端适配方案(rem/vw/响应式)
小程序选框架 Uniapp VS Taroapp
工作协作
15
如何平衡重构和需求时间冲突
谈谈你对“大前端”的理解
如何带领一个前端团队?如何提升团队的技术能力
平时如何学习前端技术?
讲几个你觉得会越来越重要的前端技术?
说说你的职业发展规划,如何做短期计划和长期规划
你认为一个优秀的前端架构师/高级工程师需要具备哪些特质?
在你的团队中,你是如何推动技术规范落地和技术选型的?
对于新技术,你是如何学习和评估的
你认为前端未来 3-5 年的发展方向是什么?
讲一个工作中遇到的复杂模块的设计思路、遇到的性能瓶颈及解决方案
你遇到的最大的技术挑战是什么?从中学习到了什么?
讲一个你做过比较复杂的项目,详细说说技术难点以及如何解决?
想找机会的原因是什么?有什么技术上想学习的具体方向
面对 AI 技术日新月异,前端工程师应该如何保持竞争力?
选择题目