set map weakmap weakset 我的理解

45 阅读1分钟

set 可以理解为元素惟一的数组 是一种数据结构,是构造函数,

  1. set 初始化 let set = new Set([1,2,3,4,4])
  2. set 转数组 [...set] Array.from(set)
  3. 数组去重 最常用 就是一个 数组转set set再转成数组的操作 Array.from(new Set(array)) [...new Set(array)]
  4. set 是为了实现算法而定义的数据结构,是构造函数,有属性和方法 方法基本就是增删改查, 个人认为,现用现学,知道是什么就行,实际工作中用不到,

map 是key-value键值对,相比对象,它的key可以是数组,也可以是其它类型的值

  1. 和set相同的地方 也是构造函数,有属性和方法,方法基本就是增删改查,
  2. 和set不同的地方,在实际项目中用处不多,

weakmap 和 weakset weakmap,weakset 的特殊衍生品,特点如下

  1. Weak 类没有 entries, keys 和values等方法
  2. 只能用对象作为键
  3. 其它和set map同
  4. 创建和使用这两个类,只要是为了性能,没有强引用,可使拉圾回收器可以清除整个入口

写在最后,阮一峰的文章极好,就是看了也不知道这玩意儿是干啥的,学了就忘,让我困扰。 set 是惟一性集合,map 是hash字典 如果要深入理解map/set是做什么用的,推《学习JavaScript数据结构与算法》薄薄的一本,我是学数据结构时看到,看过这本书再回头看一下就能理解了,本质上是为实现算法而存在的数据结构