白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

JavaScript-面试-Map-Set与Weak

2026年10月16日·Admin·2 次浏览

面试题:Map 和对象区别?Set 去重?WeakMap 使用场景?

Map vs 普通对象

Map Object
键类型 任意(含对象、NaN) 主要是字符串/Symbol
顺序 插入序可预期 整数字符串键有「类数组」排序特例
大小 map.size 需 Object.keys 数
序列化 默认 JSON 不友好 JSON 原生

适合:动态键集合、频繁增删、键非字符串。

Set

唯一值集合,可 [...new Set(arr)] 去重(对象引用按引用去重,不等同深比较)。

WeakMap / WeakSet

  • 键(WeakMap)或值(WeakSet 仅存对象)为弱引用,不可遍历、无 size。
  • 用途:私有数据挂到 DOM/对象上,不延长对象寿命,避免泄漏。

© 2025 My Blog. Built with Nuxt.js v4