es6 Map Weak Map Set Weak Set的区别

  Es6的Set是一个拥有唯一值的集合,而Map是一个拥有唯一键的集合,他们的唯一性是通过Object.is这个方法来进行比较的(Object.is可以参考MDN)。

  Set可以使用扩展运算符来将其变成一个数组,一般进行数组去重的时候也可以使用Set来进行。

  Map的结构是一个二维数组,拥有独立的键值对,在不使用ts的情况下,可以使用Map来代替ts中的enum实现枚举,看起来比较清爽,不用那么多的if else。

  Weak Set、Set还有Weak Map、Map之间的区别主要有:

    1、Weak系的都是弱引用,垃圾回收机制可以进行回收,释放内存,而普通的Set、Map不可以,他们都是强引用。在垃圾回收自动运行的时候,如果遇到若引用的标记被清除来,就会回收,如果是强引用则不会。

    2、Weak系的键都必须是对象,如果不是会报错。

上一篇:Coach Shane's Daily English Dictation 1-4


下一篇:Java弱引用(WeakReference)的理解与使用