shfshanyue / Daily-Question

互联网大厂内推及大厂面经整理,并且每天一道面试题推送。每天五分钟,半年大厂中
https://q.shanyue.tech
4.95k stars 510 forks source link

【Q562】WeakMap 与垃圾回收有何关系 #577

Open shfshanyue opened 3 years ago

shfshanyue commented 3 years ago

WeakMapMap 有亮点不同

  1. 键值只能为引用对象,无法使用基础数据类型
  2. 弱引用,无法枚举,因此无 .entries() 方法
illumi520 commented 3 years ago

WeakSet不能遍历,是因为成员都是弱引用,随时可能消失,遍历机制无法保证成员的存在,很可能刚刚遍历结束,成员就取不到了。WeakSet的一个用处,是储存DOM节点,而不用担心这些节点从文档移除时,会引发内存泄漏。