ES6 Set Map WeakSet WeakMap区别

Set成员的值都是唯一的,没有重复的值。(如果成员是引用类型,区分唯一性通过内存地址)
WeakSet与Set的区别:

  1. 成员必须为对象;
const a = new WeakSet()
a.add(target) // target为对象
  1. WeakSet是弱引用,垃圾回收机制不考虑 WeakSet 对该对象的引用;这边讲讲垃圾回收的机制:标记清楚和引用计数。对对象的回收是通过引用计数,WeakSet的引用,计数不会增加,所以WeakSet 的成员是不适合引用的,因为它会随时消失。

Map和Set的区别:

  1. 数据存储形式以[key, value],Set以[value, value]形式;
    在这里插入图片描述
    在这里插入图片描述
  2. 构造函数参数:任何具有 Iterator 接口、且每个成员都是一个双元素的数组的数据结构都可以当作Map构造函数的参数,例如[[‘fool’, 1]]

Map和WeakMap的区别,与Set和WeakSet有点类似:

  1. WeakMap键名必须为对象;
  2. WeakMap的键名也是弱引用,只要所引用的对象的其他引用都被清除。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章