搜尋文章

前端面试 P081:StrictMode 的检查与版本边界JavaScript 函数传参:值传递与对象引用前端面试 P018:手写柯里化与参数个数边界前端面试 P010:普通函数、箭头函数与 this前端面试 P088:Immer 草稿与结构共享前端面试 P006:对象遍历与属性键的选择前端面试 P009:执行上下文、调用栈与词法作用域前端面试 P094:SSE 分片解码与事件边界前端面试 P097:请求并发池、任务启动与失败释放前端面试 P076:Fiber 的协作调度与不可中断边界前端面试 P013:节流、防抖与取消待执行任务前端面试 P033:Object.create、描述符与共享属性前端面试 P057:Vue Router 配置、历史模式与导航前端面试 P030:构造函数与 new 的返回规则前端面试 P077:key、组件身份与状态重置前端面试 P039:同源策略、CORS 与请求是否发出前端面试 P032:instanceof、原型链与自定义判断前端面试 P047:Proxy 与 Vue 2 属性拦截的区别前端面试 P019:函数组合与同步数据管道前端面试 P004:手写深拷贝、循环引用与实现边界前端面试 P059:导航守卫、顺序与权限边界前端面试 P083:函数式更新、队列与纯度前端面试 P014:call、apply、bind 与模拟实现边界前端面试 P012:高阶函数、柯里化与部分应用前端面试 P041:事件委托、目标匹配与 React 事件前端面试 P048:track、trigger、动态依赖与清理前端面试 P066:自定义指令与 DOM 资源清理前端面试 P075:props 只读、状态归属与派生数据前端面试 P062:Pinia 创建、实例范围与使用前端面试 P073:JSX 编译、React 元素与表达式前端面试 P026:Promise 延迟与顺序任务队列前端面试 P016:纯函数、副作用与参数共享前端面试 P094:流式文本的 SSE 与 WebSocket 取舍前端面试 P064:storeToRefs 与 action 解构纠错前端面试 P044:Composition API 与组合式函数前端面试 P051:副作用清理与过期请求前端面试 P021:事件循环、微任务与渲染机会前端面试 P003:原始值、对象共享与赋值行为前端面试 P098:用户偏好存储、TTL 与命名空间前端面试 P056:插槽作用域与 slot props前端面试 P011:闭包、变量绑定与循环回调前端面试 P027:async 错误处理与 return await前端面试 P036:CSP、nonce 与防护边界前端面试 P007:隐式转换、ToPrimitive 与空数组比较前端面试 P035:继承方式对照与寄生组合式继承前端面试 P025:手写 Promise 的最小状态机前端面试 P079:受控表单与非受控输入前端面试 P072:虚拟 DOM 的价值与性能边界前端面试 P005:数组方法、可变性与回调副作用前端面试 P100:Proxy 沙箱为何不是安全边界前端面试 P040:发布订阅、事件总线与退订前端面试 P053:props、组件事件与 v-model 约定前端面试 P008:相等比较、NaN 与 Object.is前端面试 P065:Pinia 最小变更与对象替换的取舍前端面试 P087:Redux 单向数据流与状态边界前端面试 P002:数据类型与 typeof 的陷阱前端面试 P085:useReducer 与 useState 的实际取舍前端面试 P078:React 合成事件与旧事件池纠错前端面试 P025:Promise 解析过程与实现验收前端面试 P043:Vue 渐进式与声明式 UI前端面试 P091:SWR、TanStack Query 与服务端缓存前端面试 P074:函数组件快照与类实例的输出纠错前端面试 P071:UI 是状态映射与渲染纯度前端面试 P054:provide、inject 与跨层级依赖前端面试 P061:何时引入全局状态管理前端面试 P097:请求去重、缓存键与过期策略前端面试 P086:Context 拆分与订阅更新边界前端面试 P024:Promise 并发组合与空输入边界前端面试 P089:Redux middleware、next 与异步返回值前端面试 P022:Promise 状态、链式调用与错误传播前端面试 P084:状态提升、单一来源与范围选择前端面试 P034:class、super 与语法糖的边界前端面试 P058:路由参数、query 与组件 props前端面试 P020:定时器延迟、轮询重叠与清理前端面试 P029:对象原型、prototype 与属性查找前端面试 P095:AI SDK、编排框架与生成 UI 工具前端面试 P092:Signals、细粒度依赖与 React 集成边界前端面试 P046:Vue 响应式陷阱与 ref 自动解包纠错前端面试 P090:Zustand、Jotai 与状态作用域前端面试 P100:微前端 JS 隔离方案与资源生命周期前端面试课程:学习目录与纠错记录前端面试 P023:async、await、异步恢复与并发前端面试 P068:Vue 2 与 Vue 3 的列表 diff 区别前端面试 P015:IIFE、作用域隔离与现代模块前端面试 P063:Pinia 状态、getter 与 action前端面试 P052:Vue 条件、列表与表单指令前端面试 P050:Vue 生命周期、DOM 时机与 SSR前端面试 P060:路由 meta、合并与界面配置前端面试 P045:ref、reactive、computed 与 watch前端面试 P096:令牌无感刷新、重试与安全边界前端面试 P093:MCP 架构与前端集成场景前端面试 P080:组合、children 与自定义 Hook前端面试 P082:useState 更新请求、快照与批处理前端面试 P067:Vue 模板编译与运行时边界前端面试 P031:手写 new 与 Reflect.construct 的区别前端面试 P069:nextTick 等待 DOM 刷新与绘制的区别前端面试 P055:默认插槽、具名插槽与内容接口前端面试 P038:嵌套定时器的最小延迟与调度选择前端面试 P099:倒计时截止时间、漂移与完成事件前端面试 P019:记忆化缓存与递归调用的纠错前端面试 P049:Vue 与 React 的更新范围和批处理前端面试 P004:浅拷贝、深拷贝与 structuredClone前端面试 P042:Vue 面试导学与学习顺序前端面试 P096:共享刷新 Promise 与并发失败恢复前端面试 P070:React 面试导学与复习主线前端面试 P028:异步输出顺序的逐步推演前端面试 P001:var、let、const 与暂时性死区前端面试 P037:内存泄漏的快照与引用链排查前端面试 P017:手写 bind、重复绑定与构造调用你好,這裡是 Henry 的自留地給想法找一個落腳的地方,也給那些解決過的問題留下一點記錄。
Esc 關閉
全部文章

前端面试课程:学习目录与纠错记录

目前顯示中文(中國)原文

课程:方格前端讲面试 · 前端高频面试题,共 100 集,约 21.7 小时。

已整理 100 / 100 集。以下是笔记整理进度,不代表你的观看进度;未完整核对的分集保留为待整理。

每集至少一篇,复杂主题按概念与实现拆分。依据视频音轨转写、关键课件画面与相应文档核对;示例为便于复习整理的版本,不是逐字转录。笔记保留来源、回看定位、解释、示例与边界。

纠错与适用范围

  • P001:let、const 的绑定初始化前处于 TDZ;“完全没有提升”不够严谨。顶层 var 与 window 的关系需要区分普通脚本和模块。
  • P002:Object.prototype.toString 的标签可被 Symbol.toStringTag 改变,不能保证精确判断任意类型。
  • P003:堆、栈、地址是教学示意,不是 JavaScript 规范对所有引擎的强制内存布局。
  • P004:课件说 structuredClone 不能复制 Error 对象不正确;标准支持 Error 类型。克隆库也不等于能够复制函数闭包。
  • P005:map、filter、reduce 本身不原地替换数组,不代表回调没有副作用;新数组也可能共享元素对象。
  • P006:Object.keys、Reflect.ownKeys 按属性范围选用;性能没有跨引擎的固定排名,Reflect.ownKeys 不包含私有字段等内部状态。
  • P007:普通对象在 default hint 下通常先 valueOf、后 toString;视频的默认顺序不准确。falsy 列表还需要包含 0n 等情况。
  • P008:NaN 的比较要区分 ===、Object.is 与 SameValueZero;nullish 的简写在浏览器有 document.all 历史例外。
  • P009:调用栈与词法环境不是同一条链;上下文出栈不等于闭包关联数据立刻销毁,闭包也不自动构成泄漏。
  • P010:new 调用可构造的绑定函数会忽略已绑定 thisArg;浏览器定时器普通回调的 this 不能按普通严格独立调用推断。
  • P013:时间戳节流不保证每周期“至少一次”;连续事件结束后也可能没有尾调用。拖拽结束应结合真正的结束事件。
  • P014:临时挂方法模拟 call/apply 只是教学模型;冻结对象、严格 this、异常清理与 Proxy 都有边界。
  • P016:口述把对象、数组参数说成按引用传递,与 P003 矛盾;应为按值传递并共享同一个对象。
  • P017:再次 bind 仍能添加预设参数,只是不能替换第一次 this;instanceof 检测 new 和简化构造分支也不能完整模拟原生行为。
  • P018:解构参数模式会计入 Function.length;默认参数截断计数,rest 不计入。
  • P019:reduce 默认从左到右;只包装递归函数外层,不会自动缓存未经过包装器的递归子调用。
  • P020:定时器不会自动把耗时运算移到其他线程;interval 不等待异步回调,轮询要明确完成、取消和错误策略。
  • P021:浏览器渲染不是普通单队列中的宏任务;事件循环不会自动消除同步 CPU 阻塞,微任务也可能造成饥饿。
  • P022:then(success, fail) 的 fail 不会捕获同一个 success 抛出的异常;resolve 与 fulfilled 也不能完全等同。
  • P023:await 普通值也会暂停并异步恢复;Generator 是常见解释/转译模型,不是原生实现必须实际依赖的对象。
  • P024:all、race 的完成不会自动取消其他任务;allSettled 还可能因输入迭代异常而拒绝。
  • P025:setTimeout 只能模拟异步,不能模拟原生 Promise 的微任务顺序;教学状态机省略解析过程,不是完整兼容实现。
  • P027:await 的拒绝在恢复当前函数时进入异常控制流,不等于最初调用 async 函数时同步向外抛错。return await 在局部捕错等情形有意义。
  • P028:Node.js 11 以后 nextTick 与 Promise 也并非合并成同一个队列,不能把它们当作相同机制。
  • P029–P031:并非每个函数都有 prototype;原型属性也不等于可构造能力。Object.create+apply 不能完整模拟 class、内建或绑定构造器的 new 语义。
  • P032:instanceof 默认查原型链,不证明创建历史;自定义 Symbol.hasInstance 可使原始值返回 true,跨 realm 数组仍优先用 Array.isArray。
  • P033:Object.create(null) 的真实原型是 null;读取 proto 得到 undefined 是另一个现象。描述符未声明的枚举、写入、配置标志默认 false。
  • P034:super() 不是必须第一行,而是使用 this 前需要正确初始化;class 的完整语义也不等于普通构造函数的简单改写。
  • P035:new Parent(arg) 可以传参,限制在公共原型建立阶段不能替每个未来实例单独初始化;super() 不等同 Parent.call(this)。
  • P036:default-src 不覆盖全部 CSP 指令;有响应头不代表所有注入都被防住,nonce 也不能固定复用,未给依据的统计数字不当作事实。
  • P037:刷新后内存下降、Detached 节点或闭包本身都不能单独证明泄漏;应验证长期保留路径及多轮清理后的增长。
  • P038:MessageChannel 不受同一定时器嵌套钳制,不等于保证零延迟;动画与后台工作要按目标选择调度 API。
  • P039:CORS 主要影响跨源读取,报错不代表请求一定没发送;许可头由响应提供,同源按协议、主机、有效端口判断。
  • P040:事件总线仍有消息契约耦合;空闲回调一次跑完整队列也可能阻塞,批处理会改变时序语义。
  • P041:React JSX 中每项 onClick 不等于每项都添加原生 DOM 监听;Portal 的 React 传播链与原生 DOM 传播路径应分别分析。
  • P043–P045:Vue 对象代理与 ref 访问机制、响应式数据与 DOM 调度要区分;ref 也支持对象,computed 可有 setter,写只读 computed 不等于必然抛异常。
  • P044:Composition API 与 React Hooks 是组织逻辑上的类比,不是生命周期、调用次数与依赖机制完全等价。
  • P046:普通深层 reactive 对象属性会解包 ref,课件推荐 state.count.value++ 不正确;替换 ref.value 是受支持的用法,不应一概禁止。
  • P047:defineProperty 能给部分已有数组索引定义访问器;Vue 2 的数组策略不能当作语言能力的全部限制,slice 也不是原地变异方法。
  • P048:基础 track/trigger 示例还需要动态依赖清理、嵌套恢复、停止和调度;集合示意不是每个 Vue 版本源码的完整结构。
  • P049:列表更新范围与组件结构有关,React 批处理不等于连续 setCount(count+1) 会累加五次;Vue 3.5 props 解构也有编译特例。
  • P050:SSR 不执行 onMounted,正适合放客户端专用 DOM 逻辑;不能反过来说 window 因此禁止放在 onMounted。onUpdated 也应与 beforeUpdate 区分。
  • P051:onInvalidate 是回调参数的命名,不应误当作通用导入 API;Vue 3.5 onWatcherCleanup 需同步注册。取消请求与阻止过期结果写入是不同层面的措施。
  • P052:v-if/v-show 要区分初始与切换成本;稳定业务 key 主要保障动态列表身份,索引不是任何场景都语法禁止。
  • P053:Vue 组件 emit 不会像 DOM 事件一样自动冒泡整个树;Vue 3 默认 v-model 约定为 modelValue/update:modelValue,不能与 Vue 2 value/input 混用。
  • P054:provide/inject 按组件祖先与最近提供者作用,不是无范围全局总线;传 ref.value 的普通值也不会自动变成持续响应的注入。
  • P056:父声明的插槽具有父词法作用域,加上显式 slot props;访问未提供变量的具体警告或异常要按表达式判断。
  • P058:动态 params 可配置为可选或重复;路由 props 是到组件输入的映射,不是另一套任意复杂数据的 URL 通道。
  • P059:守卫完整顺序包含最先的离开守卫与后续 resolve 等阶段;beforeRouteLeave 可访问已有实例,不能与 beforeRouteEnter 混同。前端守卫不替代后端授权。
  • P060:route.meta 是匹配记录的非递归合并,设置元信息本身不会自动执行权限或缓存策略。
  • P062:同一 Pinia 容器内通常共享实例,不代表不同应用或 SSR 请求共用一个全局实例。
  • P063:Pinia 支持直接修改 state 和 $patch,并非只有 action 内才允许写入。
  • P064:Pinia action 已绑定 store,允许直接解构调用;课件“永远不要解构 action”的建议不正确。
  • P065:整体替换对象是受支持的数据语义;Object.assign 会保留旧字段,不能无条件作为正确替代。
  • P066:局部选项名称是 directives;界面权限指令不等于服务端鉴权。
  • P067:Vue 3 编译优化不限静态标记,旧式 with(this) 不能代表所有现代编译输出。
  • P068:Vue 3 keyed diff 与 Vue 2 经典四端双端比较不同,涉及 LIS 等策略;key 的身份正确性不应只当作固定性能保证。
  • P069:nextTick 等待相关 DOM 刷新,不是让状态赋值生效,也不保证屏幕已绘制,批处理由调度器完成。
  • P071–P073:声明式与虚拟 DOM 不保证恒定复杂度或全局最小修改;DOM 写入也不是每次必然立即回流,JSX 花括号只接受表达式而非任意语句。
  • P074:课件初始 count=0,setter 后安排读取当前闭包,三次独立点击应记录 0、1、2,而不是标注的 1、2、3。
  • P075:React 不会因 props 原地修改而自动做深比较;也不应永远把 props 复制进 state,初始化后的同步语义需明确。
  • P076:Fiber 是协作调度基础,不会抢占任意同步用户函数;并非所有更新都自动分片,commit 仍有阻塞成本。
  • P077:key 首先表达同级身份,不是保证某种固定 DOM 操作次数或永远更快的开关。
  • P078:React 17+ 的 React DOM 已取消旧事件池,现代代码通常不需要 persist 才能异步读取事件;视频混用了不同版本机制。
  • P079:非受控可结合 FormData 和表单库,不必每项都有 ref;受控输入也能 ref 聚焦,文件输入还可程序清空而非任何写入都禁止。
  • P080:复用自定义 Hook 不等于自动共享同一份状态。
  • P081:StrictMode 的检查依版本和挂载位置,React 19 已移除部分旧 API,不宜仅记成仍可用的警告。
  • P082:setter 不返回用于等待 DOM 的 Promise,当前渲染快照不原地变化;不能简单用异步或延迟二字涵盖全部调度。
  • P083:函数式 updater 的复杂度取决于逻辑和队列,不是无条件常数;暴露原始 setter 也不能限制调用方只能函数式更新。
  • P085:useState setter 也具有稳定身份,不是 useReducer dispatch 独有的性能优势。
  • P086:拆 Context、稳定 children 只能减少特定通知来源,不能保证消费组件永远不再渲染。
  • P087–P088:不必把所有局部状态塞进 Redux;无变化时 reducer/Immer 可保留引用,Immer 是结构共享而非全量深拷贝。
  • P089:next(action) 不会自动等待后续 Promise;middleware API 与完整 store 实例也不能混为一谈。
  • P090:Jotai 也支持不使用 Provider 的默认 store;Zustand 与 Jotai 均需注意 SSR/应用范围,组件外不能任意调用 Hook。
  • P091:同 key 缓存不保证永远只请求一次或强一致;卸载后状态更新不自动等于内存泄漏,取消取决于任务配合。
  • P092:Signals 不是统一纯 pull 模型,也不保证 React 组件永不重跑或性能默认最优,具体取决于库与渲染集成。
  • P093:MCP 提供连接协议,不自动完成授权或重新训练模型;工具结果不能当作覆盖用户意图的指令。
  • P094:原生 EventSource 与 fetch POST 读取 SSE 不同,自动重连和资源开销不能一概而论,网络 chunk 也不等于事件或 token。
  • P095:官方 SDK、AI 应用 SDK、编排框架与生成界面产品属于不同层次;v0 不是普通 UI 组件库,长期服务密钥不应随浏览器代码公开。
  • P096:刷新失败必须让所有等待请求结束,重放要有次数与幂等边界,刷新令牌轮换须保存新值;单页 refreshing 标志不能解决跨标签页及退出竞态。
  • P097:并发池需在失败与同步 throw 时也释放额度;去重与结果缓存不是同一种机制,HTTP/2 也不代表任意并发都无成本。
  • P098:TTL 是应用读取检查,localStorage 不主动到点删除;命名空间清理不应误删其他功能,示例也没有自动实现安全加密。
  • P099:每次 interval 减固定间隔会因调度延迟累计漂移,应基于截止点重算,前端不能保证页面冻结时准点回调。
  • P100:Proxy/fakeWindow 只隔离部分操作,嵌套共享对象与真实 DOM 等仍可互相影响;浅快照也不构成任意不可信代码的安全沙箱。

JavaScript

分集 视频主题 笔记与进度
P001 1.var,let,const 有什么区别? 前端面试 P001:var、let、const 与暂时性死区
P002 2.数据类型和 typeof 的陷阱 前端面试 P002:数据类型与 typeof 的陷阱
P003 3.值类型 vs 引用类型 前端面试 P003:原始值、对象共享与赋值行为;JavaScript 函数传参:值传递与对象引用
P004 4.深浅拷贝的本质(含常见实现) 前端面试 P004:手写深拷贝、循环引用与实现边界;前端面试 P004:浅拷贝、深拷贝与 structuredClone
P005 5.数组常用方法背后的面试点 前端面试 P005:数组方法、可变性与回调副作用
P006 6.对象遍历方式对比(for in、Object.keys、Reflect) 前端面试 P006:对象遍历与属性键的选择
P007 7.隐式类型转换有哪些坑? 前端面试 P007:隐式转换、ToPrimitive 与空数组比较
P008 8.== 和 === 的核心考点 前端面试 P008:相等比较、NaN 与 Object.is
P009 9.执行上下文和作用域链是什么? 前端面试 P009:执行上下文、调用栈与词法作用域
P010 10.JS 中的 this 究竟指向谁? 前端面试 P010:普通函数、箭头函数与 this
P011 11. 闭包到底是什么?如何判断? 前端面试 P011:闭包、变量绑定与循环回调
P012 12. 高阶函数和柯里化应用场景 前端面试 P012:高阶函数、柯里化与部分应用
P013 13. 节流 vs 防抖,面试怎么考? 前端面试 P013:节流、防抖与取消待执行任务
P014 14. bind、call、apply的底层原理 前端面试 P014:call、apply、bind 与模拟实现边界
P015 15. 立即执行函数 IIFE 是怎么工作的? 前端面试 P015:IIFE、作用域隔离与现代模块
P016 16. 纯函数、副作用与函数式编程初识 前端面试 P016:纯函数、副作用与参数共享
P017 17. 手写 bind 实现 前端面试 P017:手写 bind、重复绑定与构造调用
P018 18. 手写柯里化函数 前端面试 P018:手写柯里化与参数个数边界
P019 19. 函数组合、记忆化 前端面试 P019:函数组合与同步数据管道;前端面试 P019:记忆化缓存与递归调用的纠错
P020 20. setTimeout 和 setInterval 的陷阱 前端面试 P020:定时器延迟、轮询重叠与清理
P021 21.事件循环(Event Loop)完整解析 前端面试 P021:事件循环、微任务与渲染机会
P022 22. Promise 基本语法 + 错误捕获 前端面试 P022:Promise 状态、链式调用与错误传播
P023 23. async、await 的底层运行机制 前端面试 P023:async、await、异步恢复与并发
P024 24. Promise.all 、 allSettled 、race 、any 用法对比 前端面试 P024:Promise 并发组合与空输入边界
P025 25. 手写一个简化版 Promise 前端面试 P025:Promise 解析过程与实现验收;前端面试 P025:手写 Promise 的最小状态机
P026 26. 实战:用 Promise 重写 setTimeout 任务队列 前端面试 P026:Promise 延迟与顺序任务队列
P027 27. 实战:Async、await 错误处理的 3 种方式 前端面试 P027:async 错误处理与 return await
P028 28. “异步题大汇总”:输出顺序、陷阱解析 前端面试 P028:异步输出顺序的逐步推演
P029 29. 什么是原型?什么是原型链? 前端面试 P029:对象原型、prototype 与属性查找
P030 30. 构造函数与 new 的机制 前端面试 P030:构造函数与 new 的返回规则
P031 31. 手写 new 的实现逻辑. 前端面试 P031:手写 new 与 Reflect.construct 的区别
P032 32. instanceof 背后的原理 前端面试 P032:instanceof、原型链与自定义判断
P033 33. Object.create 是怎么实现继承的? 前端面试 P033:Object.create、描述符与共享属性
P034 34.class 是语法糖吗?背后发生了什么? 前端面试 P034:class、super 与语法糖的边界
P035 35. JS 中常见继承方式对比总结 前端面试 P035:继承方式对照与寄生组合式继承
P036 36.CSP(内容安全策略)原理介绍 前端面试 P036:CSP、nonce 与防护边界
P037 37.JS 内存泄漏场景与排查 前端面试 P037:内存泄漏的快照与引用链排查
P038 38.setTimeout最小延迟与嵌套定时器 前端面试 P038:嵌套定时器的最小延迟与调度选择
P039 39.浏览器的同源策略 前端面试 P039:同源策略、CORS 与请求是否发出
P040 40.实现一个发布订阅模式 前端面试 P040:发布订阅、事件总线与退订
P041 41.事件委托的本质(完结) 前端面试 P041:事件委托、目标匹配与 React 事件

Vue

分集 视频主题 笔记与进度
P042 0.Vue面试导学0 前端面试 P042:Vue 面试导学与学习顺序
P043 1.Vue 的设计哲学 & 核心理念00 前端面试 P043:Vue 渐进式与声明式 UI
P044 2.Composition-API与响应式系统整体介绍 前端面试 P044:Composition API 与组合式函数
P045 3.Composition-API基础语法讲解 前端面试 P045:ref、reactive、computed 与 watch
P046 4.Vue的响应式陷阱 前端面试 P046:Vue 响应式陷阱与 ref 自动解包纠错
P047 5.Vue响应式底层原理-Proxy 前端面试 P047:Proxy 与 Vue 2 属性拦截的区别
P048 6.Vue响应式底层原理-依赖追踪机制 前端面试 P048:track、trigger、动态依赖与清理
P049 7.Vue 响应式更新vsReact 状态更新 前端面试 P049:Vue 与 React 的更新范围和批处理
P050 8.Vue常用的生命周期函数 前端面试 P050:Vue 生命周期、DOM 时机与 SSR
P051 9.Vue的副作用清理逻辑 前端面试 P051:副作用清理与过期请求
P052 10.模板语法-v-if-v-for-v-bind-v-model 前端面试 P052:Vue 条件、列表与表单指令
P053 11.Vue的通信基础 前端面试 P053:props、组件事件与 v-model 约定
P054 12.Provide-Inject的用法 前端面试 P054:provide、inject 与跨层级依赖
P055 13.插槽slot与具名插槽 前端面试 P055:默认插槽、具名插槽与内容接口
P056 14.插槽作用域 前端面试 P056:插槽作用域与 slot props
P057 15.Vue-Router的基本配置与使用 前端面试 P057:Vue Router 配置、历史模式与导航
P058 16.Vue-Router的路由参数与传参方式 前端面试 P058:路由参数、query 与组件 props
P059 17.Vue-Router的路由守卫 前端面试 P059:导航守卫、顺序与权限边界
P060 18.Vue-Router的路由元信息 前端面试 P060:路由 meta、合并与界面配置
P061 19.Vue何时需要全局状态 前端面试 P061:何时引入全局状态管理
P062 20.Pinia基本用法-store 前端面试 P062:Pinia 创建、实例范围与使用
P063 21.Pinia三大核心概念 前端面试 P063:Pinia 状态、getter 与 action
P064 22.Pinia-Store的响应式解构 前端面试 P064:storeToRefs 与 action 解构纠错
P065 23.Pinia最小可变点原则 前端面试 P065:Pinia 最小变更与对象替换的取舍
P066 24.Vue的自定义指令 前端面试 P066:自定义指令与 DOM 资源清理
P067 25.Vue模板编译流程 前端面试 P067:Vue 模板编译与运行时边界
P068 26.Vue的diff算法 前端面试 P068:Vue 2 与 Vue 3 的列表 diff 区别
P069 27.nextTick的作用是什么? 前端面试 P069:nextTick 等待 DOM 刷新与绘制的区别

React

分集 视频主题 笔记与进度
P070 0.react前言导学 前端面试 P070:React 面试导学与复习主线
P071 1.如何理解 UI = f(state) 这个公式? 前端面试 P071:UI 是状态映射与渲染纯度
P072 2.虚拟DOM是什么?它解决了哪些实际问题? 前端面试 P072:虚拟 DOM 的价值与性能边界
P073 3.说说你对JSX的理解 前端面试 P073:JSX 编译、React 元素与表达式
P074 4.函数组件和类组件的本质区别是什么? 前端面试 P074:函数组件快照与类实例的输出纠错
P075 5. 为什么React中props不可变 前端面试 P075:props 只读、状态归属与派生数据
P076 6.React 的 Fiber 架构主要是为了解决什么问题? 前端面试 P076:Fiber 的协作调度与不可中断边界
P077 7.React中的key属性有什么作用? 前端面试 P077:key、组件身份与状态重置
P078 8.React 的事件机制和合成事件是如何工作的? 前端面试 P078:React 合成事件与旧事件池纠错
P079 9.受控组件和非受控组件有什么区别? 前端面试 P079:受控表单与非受控输入
P080 10.为什么在React中“组合优于继承” 前端面试 P080:组合、children 与自定义 Hook
P081 11.React 的严格模式 (StrictMode) 有什么作用? 前端面试 P081:StrictMode 的检查与版本边界
P082 12.useState的更新是异步的吗? 前端面试 P082:useState 更新请求、快照与批处理
P083 13.使用 useState 的函数式更新方式能带来哪些好处? 前端面试 P083:函数式更新、队列与纯度
P084 14.“状态提升”这种模式有哪些优缺点? 前端面试 P084:状态提升、单一来源与范围选择
P085 15. useReducer 相比useState优势体现在哪? 前端面试 P085:useReducer 与 useState 的实际取舍
P086 16.如何优化因 useContext 引起的性能问题? 前端面试 P086:Context 拆分与订阅更新边界
P087 17.说一下Redux的核心思想 前端面试 P087:Redux 单向数据流与状态边界
P088 18.为什么说 Immer.js 在现代 Redux 生态中扮演着如此重要的角色? 前端面试 P088:Immer 草稿与结构共享
P089 19.Redux 的中间件(Middleware)机制是如何工作的? 前端面试 P089:Redux middleware、next 与异步返回值
P090 20.你是否了解像 Zustand、Jotai 这类新兴的状态管理库?它们各自有什么特点? 前端面试 P090:Zustand、Jotai 与状态作用域
P091 21.像 SWR 或 React Query 这样的库,它们主要解决了什么问题? 前端面试 P091:SWR、TanStack Query 与服务端缓存
P092 22.你是如何理解 Signals 的?它与 React 现有的状态管理方式有何不同? 前端面试 P092:Signals、细粒度依赖与 React 集成边界

场景题

分集 视频主题 笔记与进度
P093 场景题篇::AI工具中,经常提到的 mcp 是什么,有哪些与前端方向结合的场景? 前端面试 P093:MCP 架构与前端集成场景
P094 ChatGPT 的对话功能实现,为什么选择 SSE协议而非Websocket 前端面试 P094:SSE 分片解码与事件边界;前端面试 P094:流式文本的 SSE 与 WebSocket 取舍
P095 你了解哪些AI前端工具或库 前端面试 P095:AI SDK、编排框架与生成 UI 工具
P096 前端如何实现token的无限刷新 前端面试 P096:令牌无感刷新、重试与安全边界;前端面试 P096:共享刷新 Promise 与并发失败恢复
P097 如何解决页面请求接口大规模并发问题 前端面试 P097:请求去重、缓存键与过期策略;前端面试 P097:请求并发池、任务启动与失败释放
P098 如何使用 JS 实现一个轻量级本地存储方案,用于保存和读取用户偏好设置 前端面试 P098:用户偏好存储、TTL 与命名空间
P099 如何使用 js 实现一个支持设置 时间的倒计时器,并在倒计时结束时触发事件 前端面试 P099:倒计时截止时间、漂移与完成事件
P100 微前端架构中,一般是如何到JavaScript隔离的? 前端面试 P100:Proxy 沙箱为何不是安全边界;前端面试 P100:微前端 JS 隔离方案与资源生命周期
看看其他文章 →