资讯专栏INFORMATION COLUMN

WeakMap WeakSet

glumes / 2164人阅读

WeakMap WeakSet

特性:

WeakMap对key的引用和WeakSet的成员 是弱引用

WeakMap对key的引用和WeakSet的成员 只能是对象

无法遍历

优点:

不易造成内存泄漏

弱引用

引用了对象,但是不影响它的垃圾回收

不会因为该(弱)引用而改变原本的垃圾回收机制,在(弱)引用前应该进垃圾场的,(弱)引用后还是得进垃圾场,不受到(弱)引用的任何影响。
var obj = {};
var wm = new WeakMap();
// 弱引用
wm.set(obj, 1);
console.log(wm.get(obj));    // 1

// obj为null,将会给垃圾回收机制回收。
obj = null;
console.log(wm.get(obj));    // undefined
Set Map WeakSet WeakMap区别 Set

成员唯一、无序且不重复

[value, value],键值与键名是一致的(或者说只有键值,没有键名)

可以遍历,方法有:add、delete、has

WeakSet

成员都是对象

成员都是弱引用,可以被垃圾回收机制回收,可以用来保存DOM节点,不容易造成内存泄漏

不能遍历,方法有add、delete、has

Map

本质上是键值对的集合,类似集合

可以遍历,方法很多可以跟各种数据格式转换

WeakMap

只接受对象作为键名(null除外),不接受其他类型的值作为键名

键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收,此时键名是无效的

不能遍历,方法有get、set、has、delete

具体用法与更详细解释

ES2015 WeakMap的学习和使用 - 知乎

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106597.html

相关文章

  • 细说es6中的Set和Map

    摘要:返回一个布尔值,表示该值是否为的成员。返回键名的遍历器返回键值的遍历器返回键值对的遍历器使用回调函数遍历每个成员需要特别指出的是,的遍历顺序就是插入顺序。该数组的所有成员,都会自动成为实例对象的成员。这意味着,数组的成员只能是对象。 1.Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构...

    Ryan_Li 评论0 收藏0
  • 【ES6脚丫系列】Set+WeakSet+Map+WeakMap

    摘要:返回一个布尔值,表示该值是否为的成员。清除所有成员,没有返回值。返回的都是遍历器对象。结构的实例的方法,用于对每个成员执行某种操作,没有返回值。这个特点意味着,无法引用的成员,因此是不可遍历的。数组成员是一个或多个表示键值对的一维数组。 本文字数:4700+,阅读时间约10分钟。 如果有理解不到位的地方,欢迎大家纠错。 一、Set 【01】Set是一种数据结构。类似于数组,但是成员的值...

    lyning 评论0 收藏0
  • ES6新增Set、Map数据结构

    摘要:数据类型基本用法提供了一种类似于数组的新的数据结构。实例属性和方法本身是一个构造函数,用来生成数据结构。返回一个布尔值,表示该值是否为的成员。任何具有接口且每个成员都是一个双元素的数组的数据结构都可以当作构造函数的参数。 Set数据类型 基本用法 ES6 提供了一种类似于数组的新的数据结构 Set。它的成员的值都是唯一的,没有重复的值。 const s = new Set(); [2...

    lentoo 评论0 收藏0
  • 【ES6入门09】:Set和Map数据结构

    摘要:类似于与的区别和的对比与对比数据结构横向对比,增查改删增查改删与对比增查改删与对比增查改删建议优先使用,不使用,特别是复杂的数据结构考虑数据唯一性,使用,放弃和 Set 1.add()方法和size属性 { let list = new Set(); // add()方法向Set数据添加元素 list.add(5); list.add(7); /...

    Codeing_ls 评论0 收藏0
  • ECMAScript6(11):Set 与 Map

    摘要:的默认遍历器是另外这里需要格外强调的是中的方法是判断键值是否存在的,如中的方法是判断键名是否存在的,如解构转换技巧转转为防止不必要的错误,直接丢弃不是字符串为键的属性转和类似,不过它只接受对象作为键名,除外。 Set Set 是一种集合结构,特征和数学中的一致,具有以下特征: 同一个集合中不能有相同元素 set 可以存放不同类型的数据 但使用过程中请注意以下几点: 存入 set ...

    BothEyes1993 评论0 收藏0

发表评论

0条评论

glumes

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<