首页
文章列表
标签墙
返回找工具啦
JS
共 17 篇文章
JavaScript 模块循环依赖时变量值为undefined的问题
2026-05-03 16:21:41
JavaScript 模块循环依赖时变量值为 undefined 的问题 JavaScript 开发中,当模块 A 依赖模块 B,同时模块 B 又依赖模块 A 时,会形成循环依赖。如果代码执行时机不当,开发者经常会发现导入的变量值为 undefined,导致程序报错。本文将通过具体复现步骤,分析其背
前端开发
循环依赖
模块化
39
0
JavaScript Atomics.waitAsync非阻塞等待SharedArrayBuffer
2026-05-03 11:13:25
JavaScript Atomics.waitAsync非阻塞等待SharedArrayBuffer JavaScript 主线程是单线程的,这意味着如果在主线程中执行耗时操作会阻塞页面渲染,导致用户界面卡顿。在使用 SharedArrayBuffer 进行多线程(Web Workers)共享内存操
JS
Atomics
共享内存
40
0
JavaScript FinalizationRegistry在垃圾回收时执行清理回调
2026-04-29 17:23:38
JavaScript FinalizationRegistry在垃圾回收时执行清理回调 JavaScript 的垃圾回收机制通常会自动管理内存,但在某些涉及外部资源(如文件句柄、数据库连接或 WASM 内存)的场景下,仅靠垃圾回收是不够的。FinalizationRegistry 提供了一种在垃圾回
JS
垃圾回收
内存管理
48
0
JavaScript Promise链中return和不return的区别
2026-04-26 17:14:55
JavaScript Promise链中return和不return的区别 在 JavaScript 异步编程中,Promise 链式调用(Chaining)是处理多步骤操作的核心机制。很多开发者在编写 .then 链时,常常因为遗漏 return 关键字而导致数据丢失或执行顺序混乱。 本文将直接拆
JS
Promise
异步编程
61
0
JavaScript Promise.withResolvers简化Promise创建模式
2026-04-24 20:17:23
JavaScript Promise.withResolvers简化Promise创建模式 Promise.withResolvers 是 ECMAScript 2024 引入的一个静态方法,旨在解决传统 new Promise 构造函数在特定场景下的局限性。它允许将 promise 对象及其控制函
JS
Promise
异步编程
68
0
JavaScript async/await中try-catch捕获不到错误的情况
2026-04-23 22:20:17
JavaScript async/await中trycatch捕获不到错误的情况 JavaScript 中的 async/await 配合 trycatch 极大地简化了异步代码的错误处理,但在某些特定场景下,错误会“溜走”,导致 catch 块无法捕获。以下是导致这种情况的常见原因及修复步骤。 情
JS
异步编程
错误处理
55
0
JavaScript for...in和for...of的区别与各自适用场景
2026-04-23 05:27:58
JavaScript for...in和for...of的区别与各自适用场景 在 JavaScript 开发中,遍历数据结构是最常见的操作之一。许多初学者容易混淆 for...in 和 for...of 的用法,导致代码出现非预期的 bug。虽然两者都用于循环,但它们的设计初衷和适用场景完全不同。
JS
循环遍历
for...in
46
0
JavaScript原型链查找为什么会有性能开销
2026-04-22 10:22:36
JavaScript原型链查找为什么会有性能开销 JavaScript 的原型链机制是实现继承和属性共享的核心方式,但在高频访问属性的场景下,深层或不规范的链式查找会带来显著的性能损耗。理解其背后的原因并掌握优化方法,是编写高性能代码的关键。 1. 理解属性查找的基本机制 在 JavaScript
JS
原型链
性能优化
45
0
JavaScript ES2024新特性Array.groupBy的实际应用
2026-04-21 19:29:32
在数据处理中,经常需要将数组元素按照特定属性或规则进行分组归类。在过去,开发者通常不得不手写 reduce 函数或者引入 Lodash 等第三方库来实现这一功能。ES2024 引入了 Array.prototype.groupBy 方法,让这一操作变得像调用 map 或 filter 一样简单。 1
JS
ES2024
groupBy
44
0
JavaScript Object.freeze深层冻结对象的递归实现
2026-04-20 07:23:07
JavaScript Object.freeze深层冻结对象的递归实现 在JavaScript开发中,使用 Object.freeze 可以防止对象被修改。然而,Object.freeze 只能进行“浅层冻结”:它只会冻结对象自身的属性,如果某个属性的值是另一个对象(嵌套对象),那个内部对象仍然是可
JS
深层冻结
递归
58
0
JavaScript Set的交集、并集、差集运算方法
2026-04-20 01:20:01
JavaScript Set的交集、并集、差集运算方法 JavaScript 原生的 Set 对象虽然提供了存储唯一值的强大能力,但并没有像 Python 或数学集合那样直接内置 union(并集)、intersection(交集)或 difference(差集)的方法。我们需要利用 ES6 的扩展
前端开发
JS
Set对象
53
0
JavaScript 内存管理:垃圾回收与内存泄漏
2026-04-17 21:25:20
JavaScript 内存管理:垃圾回收与内存泄漏 JavaScript 具备自动内存管理机制,开发者无需像 C 或 C++ 那样手动分配(malloc)和释放(free)内存。然而,理解其背后的垃圾回收(Garbage Collection, 简称 GC)机制,是编写高性能代码和避免内存泄漏的关键
JS
内存管理
垃圾回收
67
0
JavaScript Promise:then() 与 catch() 链式调用
2026-04-17 08:26:49
JavaScript Promise:then 与 catch 链式调用 JavaScript 中的 Promise 链式调用是处理异步操作的核心机制。通过 then 和 catch 的串联,可以将复杂的异步逻辑转化为线性的、同步感极强的代码结构。掌握链式调用的数据流转与错误冒泡机制,是编写健壮异步
Promise
异步编程
链式调用
80
0
JavaScript 事件处理:addEventListener 与事件冒泡
2026-04-11 16:22:12
JavaScript 事件处理:addEventListener 与事件冒泡 在日常开发中,处理用户交互(如点击、输入)是核心任务。掌握 JavaScript 的事件处理机制,特别是 addEventListener 的用法和“事件冒泡”原理,能让你精准控制页面行为,避免逻辑冲突。 1. 基础用法:
JS
前端开发
事件处理
75
0
JavaScript原型链继承与类式继承的内存结构对比
2026-04-11 08:24:08
JavaScript原型链继承与类式继承的内存结构对比 JavaScript 中实现继承的核心在于如何利用内存中的原型链与构造函数。两种最基础的模式分别是“原型链继承”和“类式继承(借用构造函数)”。它们在内存中的存储方式、属性查找机制以及数据共享策略上存在本质区别。 一、 原型链继承 原型链继承的
JS
原型链
继承
73
0
JavaScript 闭包在模块私有变量中的实际应用
2026-04-09 23:26:58
JavaScript 闭包在模块私有变量中的实际应用 在 JavaScript 开发中,防止全局变量污染是构建稳定应用的关键。直接在全局作用域定义变量极易导致命名冲突和状态被意外修改。利用闭包特性创建模块,可以完美实现变量的私有化,只暴露必要的操作接口。 第一步:认识全局变量的风险 如果不使用模块化
JS
闭包
模块化
56
0
JavaScript 事件循环:宏任务与微任务
2026-04-07 23:28:20
JavaScript 事件循环:宏任务与微任务 JavaScript 是单线程语言,这意味着它一次只能做一件事。为了不阻塞主线程(导致页面卡顿),JavaScript 采用了一种“事件循环”机制来处理异步操作。理解这一机制的关键,在于分清“宏任务”和“微任务”的区别与执行顺序。 以下指南将直接解析核
事件循环
宏任务
微任务
68
0