Published on2025年9月5日高频事件优化:防抖与节流DebounceEventHandlingJavaScriptPerformanceThrottle本文深度剖析了 JavaScript 中用于优化高频事件处理的两种核心技术:防抖 (Debounce) 与节流 (Throttle)。内容系统性地阐述了两种模式的精确定义、底层闭包实现,并通过时间线图表进行可视化对比。笔记还涵盖了 leading/trailing 等高级配置,并指出了在事件监听器中因函数重复声明而导致的常见实现陷阱。
Published on2025年9月3日AbortController 与 AbortSignalAbortControllerAsynchronousfetchJavaScriptPromiseWebAPI本文深度剖析了 AbortController 与 AbortSignal API 作为现代 Web 中取消异步操作的标准机制。内容系统性地阐述了其控制器/信号的工作模式,并重点展示了其在 fetch 请求中的应用、错误处理,以及在 React useEffect 中用于清理副作用和避免竞态条件等高级实践。
Published on2025年9月3日对象属性描述符definePropertyJavaScriptMetaprogrammingObjectObjectFreezePropertyDescriptor本文深度剖析了 JavaScript 对象属性的底层元数据——属性描述符 (Property Descriptor)。内容系统性地阐述了数据描述符与存取描述符的区别、writable, enumerable, configurable 三大标志的作用,并详细介绍了 Object.defineProperty 的用法与默认行为。笔记还涵盖了 Object.preventExtensions, Object.seal, Object.freeze 等用于增强对象不变性的 API。
Published on2025年8月14日V8 引擎垃圾回收机制GarbageCollectionJavaScriptMemoryManagementNodeJSPerformanceV8本文深度剖析了 V8 JavaScript 引擎的垃圾回收 (Garbage Collection, GC) 机制。内容系统性地阐述了其基于“分代假说”的内存布局(新生代与老生代),详细拆解了 Minor GC (Scavenge) 和 Major GC (Mark-Sweep-Compact) 的工作流程,并探讨了现代 GC 项目 Orinoco 如何利用并行、增量和并发技术来最小化主线程的停顿时间。
Published on2025年8月14日性能剖析 Array 与 SetArrayBigODataStructuresJavaScriptPerformanceuseActionState本文深度剖析了 JavaScript 中 Array 和 Set 两种核心数据结构的性能权衡。内容从时间复杂度 (Big O) 的理论分析入手,深入到底层实现(连续内存 vs. 哈希表)的差异,解释了为何在小规模数据集上 Array 常优于 Set。