← [ BACK_TO_NOTES ]

Set vs WeakSet

Set 和 WeakSet 的设计目标、引用语义、遍历能力与使用场景对比。

#synthesis #growing #javascript #ecmascript

[!info] related notes

Set vs WeakSet

一句话结论

  • Set:通用唯一值集合,能遍历,适合去重和集合运算
  • WeakSet:对象弱引用集合,不能遍历,适合临时标记对象

对比表

维度SetWeakSet
成员类型任意值只能对象
是否唯一是是
是否可遍历可以不可以
是否有 size有没有
引用语义强引用弱引用
典型用途去重、集合运算临时标记、对象访问控制

什么时候用 Set

  • 去重
  • 判断成员是否存在
  • 做并集、交集、差集
  • 需要遍历集合内容

什么时候用 WeakSet

  • 只想标记对象是否处理过
  • 不想因为集合引用导致对象无法回收
  • 不需要遍历所有成员

最短记忆方式

  • Set = 唯一值集合
  • WeakSet = 对象临时标记集合
创建于 2026/4/7 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本