集合对象
约 757 字大约 3 分钟
2022-04-17
集合对象是指: Set、 Map 、WeakSet、 WeakMap
提问
简单介绍一下 Set、 Map 、WeakSet、 WeakMap
Set
Set 对象是 值的集合,Set中的元素只会出现一次,即 Set 中的元素值是唯一的。
Set.prototype.add()在当前实例的尾部添加一个元素,并返回当前Set实例Set.prototype.clear()移除当前实例的所有元素Set.prototype.delete()移除当前实例中的指定的元素Set.prototype.has()判断当前实例中是否存在指定的元素Set.prototype.entries()返回一个迭代器对象,该对象包含按照插入顺序排列所有元素的[value, value]数组Set.prototype.keys()同values()方法Set.prototype.values()返回一个迭代器对象,该对象包含按照插入顺序排列的所有元素的值
Map
Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值都可以作为一个键或一个值。
Map.prototype.set()在当前实例添加或更新一个指定的键和值的键值对Map.prototype.get()返回当前实例中的一个指定元素Map.prototype.has()判断当前实例中是否存在指定元素,返回 布尔值Map.prototype.delete()移除当前实例中指定元素Map.prototype.clear()移除当前实例所有元素Map.prototype.entries()返回一个迭代器对象,该对象包含按照插入顺序排列所有元素的[key, value]数组Map.prototype.keys()返回一个迭代器对象,该对象包含按照插入顺序排列的所有元素的键Map.prototype.values()返回一个迭代器对象,该对象包含按照插入顺序排列的所有元素的值
WeakSet
WeakSet 对象是一些对象值的集合,并且其中的每个对象值都只能出现一次,在集合中是唯一的。
WeakSet 和 Set 的区别:
与
Set相比,WeakSet只能是对象的集合,而不能是任何类型的任意值WeakSet集合中的对象的引用为弱引用。如果没有其他的对WeakSet中的对象的引用,那么这些对象会被当成垃圾回收掉。WeakSet是不可枚举的。WeakSet.prototype.add()在当前实例的尾部添加一个元素,并返回当前Set实例WeakSet.prototype.delete()移除当前实例中的指定的元素WeakSet.prototype.has()判断当前实例中是否存在指定的元素
WeakMap
WeakMap 对象是一组 键值对 的集合,其中的键是弱引用的,且键必须是对象,而值可以是任意的。
WeakMap 和 Map 的区别
WeakMap的键必须是对象,值可以使任意的。由于键是弱引用的,所以当键所指对象没有其他地方引用的时候,它会被GC回收掉。
WeakMap是不可枚举的。WeakMap.prototype.set()在当前实例添加或更新一个指定的键和值的键值对WeakMap.prototype.get()返回当前实例中的一个指定元素WeakMap.prototype.has()判断当前实例中是否存在指定元素,返回 布尔值WeakMap.prototype.delete()移除当前实例中指定元素
