爱生活,爱编程,学习使我快乐
Set类似数组,但是成员的值都是唯一的,没有重复的值。
WeakSet 结构与 Set 类似,也是不重复的值的集合。
但是
WeakSet 的成员只能是对象,而不能是其他类型的值。
WeakSet 中的对象都是弱引用,不计入垃圾回收机制。
它类似对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。
WeakMap结构与Map结构类似,也是用于生成键值对的集合。
但是
1、WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名。
2、WeakMap的键名所指向的对象都是弱引用,不计入垃圾回收机制。
这两点与“WeakSet和Set的区别”相同
数据结构 | 类似的类型 | 限制 | 是否是弱引用 | 特点 |
---|---|---|---|---|
Array | 数组 | 成员可以是任意类型的值 | 否 | – |
Set | 类似数组 | 成员可以是任意类型的值 | 否 | 成员的值都是唯一的 |
WeakSet | 类似数组 | 成员只能是对象 | 是 | 成员的值都是唯一的 |
—-华—- | —-丽—- | —-的—- | —-分隔—- | —-线—- |
Object | 对象 | “键”只能是字符串 | 否 | – |
Map | 类似对象 | “键”的范围不限于字符串 | 否 | – |
WeakMap | 类似对象 | “键”只能是对象(null除外) | 是 | – |
1、没有遍历操作(即没有keys()、values()和entries()方法),也没有size属性。
2、无法清空,即不支持clear方法。
Set和WeakSet类似数组,并且成员的值都是唯一的。WeakSet的成员和WeakMap的键都必须是对象,并且都是弱引用,可以用来避免内存溢出的问题。