Skip to main content

21 docs tagged with "JavaScript"

View All Tags

async/await

async/await 核心机制与底层实现。覆盖 async/await 相对 Promise 的三大优势(错误栈跟踪 / 中间值共享 / 调试 Step-over 体验)、async 强制返回 Promise 的规则、await 微观异步与宏观同步的调度、try-catch 能捕获 await 错误的原理(rejected Promise 转为 generator.throw),以及手写 Generator 自动执行器(co 库原理)。

BOM

浏览器对象模型(BOM)核心 API 与面试高频考点。覆盖 window/navigator/location/history 四大核心接口、Hash vs History 路由原理与刷新 404 陷阱、Cookie/LocalStorage/SessionStorage/IndexedDB 本地存储对比、5 大高性能 Observer API(IntersectionObserver 懒加载 / MutationObserver 水印防删 / MessageChannel React 调度器 / requestAnimationFrame 60Hz 同步 / sendBeacon 卸载埋点)以及 Web Worker 多线程通信(Transferable Objects 零拷贝)。

class

ES6 class 语法糖全解析。覆盖实例属性的新写法、ES2022 的

DOM

DOM 操作核心 API 与性能优化。覆盖节点查找/创建/修改 API 对比(querySelector 返回静态 NodeList vs getElementsByClassName 返回动态 HTMLCollection)、Repaint 与 Reflow 的触发条件与区别(强制同步布局 Layout Thrashing 陷阱)、DocumentFragment 离线操作优化、虚拟 DOM 与原生 DOM 的真实性能对比(首次渲染/局部更新/复杂列表三种场景),以及虚拟 DOM 真正的价值在开发体验与性能下限保证而非极致性能。

GC(V8)

V8 垃圾回收机制全梳理。覆盖分代回收策略(新生代 Scavenge 复制算法 + 老生代 Mark-Sweep / Mark-Compact)、V8 内存限制的原因(避免 STW 全停顿)、Orinoco 高级优化(增量标记 / 并发回收 / 懒清理)、常见内存泄漏场景(全局变量、定时器、闭包、游离 DOM)的排查流程(DevTools Performance + Memory Heap Snapshot),以及早期引用计数算法的弃用原因。

Generator (协程机制)

Generator 协程机制与底层实现。覆盖 Generator 函数语法与 next/yield 行为、传值/返回值规则、Babel 转译后的状态机(switch-case + context)实现原理、Redux-Saga 复杂异步流(防抖/节流/任务取消)、Symbol.iterator 自定义迭代器部署、无限序列惰性求值(O(1) 内存占用),以及它作为 async/await 底层基础的核心地位。

Promise

Promise 全方法解析与执行顺序细节。覆盖三种状态(pending/resolved/rejected)与状态不可逆、then/catch/finally 链式调用、Promise.all/allSettled/race/any 的返回值结构对比与适用场景、ES2024 Promise.withResolvers 取消定时器实战、ES2025 Promise.try 同步/异步统一处理(避免同步代码被推迟到微任务)、Promise 解析机制的 Tick 拆分(return Promise 时隐式增加两个微任务导致推迟两个 Tick)。

Web 音频录制与处理

Web 音频录制与处理完整链路。覆盖 navigator.mediaDevices.getUserMedia 麦克风采集(HTTPS 限制与授权机制)、MediaRecorder 音频录制与 Blob 导出、AudioContext Web Audio API 节点图(AnalyserNode 频域分析与 0-255 数据映射波形图)、录音上传 FormData 实现、浏览器 Autoplay Policy 拦截解决方案、微信式长按录音松开发送的 Touch 事件处理。

不常见的数据类型

不常见但强大的 JavaScript 数据类型。Symbol 用作唯一值与对象私有属性(`Symbol.iterator` / `Symbol.toPrimitive` 等内置 Symbol);BigInt 突破 Number 安全整数限制;Map/Set 提供任意键类型的有序集合与去重能力;WeakMap/WeakSet 借助弱引用解决内存泄漏问题,是 Vue 3 响应式、深拷贝等源码的底层依赖。

事件循环和异步编程

JavaScript 异步编程演进与事件循环核心机制。覆盖 Callback / Promise / Generator / async-await 四代异步方案对比、Event Loop 执行模型、宏任务(一次一个)与微任务(一次一队)的优先级对比、循环中执行异步任务的串行与并行方案(for...of await vs Promise.all vs forEach 陷阱),以及经典面试题 1 2 4 6 8 3 7 5 的逐行拆解。

事件机制

DOM 事件机制全梳理。覆盖事件流三阶段(捕获 / 目标 / 冒泡)、DOM Level 0 vs Level 2 监听方式、addEventListener 第三个参数(useCapture / once / passive)配置、事件对象的 target vs currentTarget 与 stopPropagation vs stopImmediatePropagation 差异、事件委托的优势与不冒泡事件的局限、mouseover/mouseenter 高频易混点对比,以及 CustomEvent 在跨组件通信与 SPA 路由变化劫持(pushState 包装)中的实战。

二进制数据与文件处理

前端二进制数据处理全链路。ArrayBuffer 作为底层固定长度内存,配合 TypedArray(同构类型视图)与 DataView(异构类型 + 字节序控制)读写;ES2024 的 Resizable ArrayBuffer 与 transfer() 实现零拷贝。Blob/File 抽象支撑大文件分片上传、Canvas 导出海报、Base64 互转等真实业务。

代码执行原理

JavaScript 代码从源码到执行的完整链路。覆盖 V8 引擎的 JIT 编译流程(Parser → AST → Ignition 字节码 → TurboFan 机器码 → 去优化)、执行上下文的三个核心组件(变量环境 / 词法环境 / This 绑定)、变量与函数提升(含 AO 示例)、作用域与作用域链、闭包本质,以及事件循环中宏任务与微任务的执行顺序(含 Node.js 与浏览器的差异)。

原型与原型链

JavaScript 原型与原型链的底层机制。覆盖基于原型的 OOP 与基于类的 OOP 差异、显式原型 prototype 与隐式原型 __proto__ 的对应关系、Object 与 Function 的鸡和蛋问题(互相是对方实例)、手写 instanceof 判定逻辑、手写 new 操作符的 4 步实现(创建对象、绑定原型、绑定 this、返回结果),以及 ES6 之前最完美的寄生组合式继承范式。

数据类型

JavaScript 8 种数据类型的底层细节与面试高频考点。基本类型与引用类型的栈/堆分配(含 V8 Smi 内联与隐式装箱机制)、typeof/instanceof/Object.prototype.toString 三大检测方法的适用场景与坑点、8 个 falsy 值表、显式与隐式转换规则,以及 == / === / Object.is 的选型经验。

数组

JavaScript 数组的进阶使用与底层原理。覆盖高阶函数 map/filter/reduce 的手写实现与稀疏数组处理、flat/flatMap 扁平化、V8 从 QuickSort 演进到 TimSort 的稳定排序、Fast Elements(PACKED_SMI/PACKED_DOUBLE)与 Dictionary Elements 两种底层存储模式,以及类数组到真实数组的转换技巧。

模块化

前端模块化演进与面试高频考点。覆盖 IIFE / AMD / CMD 早期方案、CommonJS(同步加载、值拷贝、运行时)、ES Module(静态分析、Live Binding、Tree-Shaking 友好),CJS vs ESM 全维度对比,循环引用的处理差异,Tree-Shaking 原理与必须基于 ESM 的原因,export 与 export default 的差异,以及 esbuild 等工具在 ESM/CJS 互转时的实现机制(__esModule 标记 + 闭包包装)。

装饰器

JavaScript 装饰器从模式到提案版本的完整梳理。覆盖装饰者模式、类/属性/方法装饰器、属性描述符(数据描述符与存取描述符),对比 Legacy(Stage 2)与 Standard(Stage 3)两个版本的 API 差异(`(target, name, descriptor)` vs `(value, context)`),以及 MobX、NestJS、Angular、Core-Decorators 等开源库的真实落地场景。

语法

JavaScript 语法骨架与高频考点。覆盖标识符规则、变量声明(var 提升 / let/const TDZ / const 绑定语义)、关键字分类、表达式分类、运算符优先级(重点表)、现代运算符(??、?.、||=)、语句(for...of、for await...of)与注释规范。附经典 for 循环闭包陷阱与箭头函数对比。

请求处理

前端网络请求方案对比与高级应用。覆盖 XHR / Fetch / Axios 三大方案的全维度对比(API 设计、进度监听、Cookie 携带、超时控制、错误处理),AbortController 取消请求原理(DOM 原生通用接口,非 Fetch/Axios 专属),以及手写 fetchWithTimeout 超时控制函数。

错误处理

前端错误处理全链路与异常监控。覆盖原生错误类型(SyntaxError / ReferenceError / TypeError / RangeError)、同步 try-catch 的局限、全局捕获方案(window.onerror / 资源加载错误的捕获阶段 / unhandledrejection)、React ErrorBoundary 与 Vue errorHandler 渲染降级、跨域 Script error 解决(crossorigin + CORS)、ES2022 Error Cause 异常链保留原始堆栈,以及 await 为什么能被 try-catch 接住的 Generator 自动执行器原理。