/*WeakSet 集合与 Set 集合类似,集合中的元素是无序的,并且不能重复的。但是 WeakSet 集合中的元素只能是对象(引用类型),不能是其他类型。WeakSet 集合只存储对象的引用,并不存储对象的原始值;集合中的引用如果是对象唯一的引用,则会被回收并释放相应的内存。*/const weakset = new WeakSet()// 也可以在创建集合时向集合中添加元素// const weakset = new WeakSet([{}, [], new Date()])// 源对象let obj = {name: '张三'};// WeakSet 集合支持 3 个方法,add(),has(),delete()// 向集合中添加对象weakset.add(obj)// weakset.add([1, 2, 3])// 判断集合中是否具有某个对象console.log(weakset.has(obj))// 删除集合中的对象// weakset.delete(obj);// 清除变量 obj 对源对象的引用obj = null;// 过一段时间之后,weakset 集合对源对象的引用也会被删除。setInterval(function() {console.log(weakset)}, 1000)/*const set = new Set()let obj = {};set.add(obj);// 移除变量 obj 对空对象的引用obj = null;console.log(set.size); // 1 */

ES6-weakset集合相关推荐

  1. ES6新特性(中)——ES6的集合(set集合、map集合等)

    这里写目录标题 ES6的集合 一.Set集合 1.操作方法 2.遍历方法: 二.WeakSet集合 1.概念理解 2.方法: 3.WeakSet 的应用场景/好处 三.Map集合 1.概念理解 2.属 ...

  2. ES6:12-Map集合

    ES6:12-Map集合 // 声明 let m = new Map(); // 添加元素 m.set('name', '厦门'); m.set('change', function () { con ...

  3. es6 WeakSet

    WeakSet 含义 WeakSet 结构与 Set 类似,也是不重复的值的集合.但是,它与 Set 有两个区别. 首先,WeakSet 的成员只能是对象,而不能是其他类型的值. const ws = ...

  4. ES6 WeakSet数据结构 与Set十分相似

    它与Set十分相似,对象的值也不能是重复的,与Set不同点: 1.WeakSet成员只能够是对象. 2.作为WeakSet成员的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是 ...

  5. [ES6] 细化ES6之 -- 键值对集合

    Set集合 Set集合是什么 Set对象是值的集合,可以按照插入的顺序迭代它的元素. Set集合中的元素只会出现一次,即 Set集合中的元素是唯一的,没有重复的值. Set本身是一个构造函数,用来生成 ...

  6. ES6中的迭代器(Iterator)和生成器(Generator)

    用循环语句迭代数据时,必须要初始化一个变量来记录每一次迭代在数据集合中的位置,而在许多编程语言中,已经开始通过程序化的方式用迭代器对象返回迭代过程中集合的每一个元素 迭代器的使用可以极大地简化数据操作 ...

  7. 深入解析ES6中的迭代器(Iterator)和生成器(Generator)

    用循环语句迭代数据时,必须要初始化一个变量来记录每一次迭代在数据集合中的位置,而在许多编程语言中,已经开始通过程序化的方式用迭代器对象返回迭代过程中集合的每一个元素 迭代器的使用可以极大地简化数据操作 ...

  8. ES6 复习,知识补充

    ES6 知识补充 概念 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了. 它的目标,是使得 JavaScript 语 ...

  9. (六)数据结构之“集合”

    数据结构之"集合" 集合是什么? LeetCode:349.两个数组的交集 前端与集合:使用ES6的Set 思考题 集合是什么? 一种无序且唯一的数据结构 ES6中有集合,名为Se ...

最新文章

  1. bootstrap禁用点击空白处关闭模态框
  2. java手动提交事务_Mybatis是如何将事务和连接池高效的结合的
  3. jpa 返回数据转换_如何使用JPA类型转换器加密数据
  4. java实现矩阵相乘
  5. oracle中创建游标,oracle 存储过程创建游标
  6. 听说做程序员年入百万,能不能带带你表弟?
  7. 解决CentOS7 无法启动mysql 的解决办法
  8. 2021高考技能考试成绩查询,2021年临床技能考试成绩出来了!附查询方式
  9. 使用python中正则表达式匹配linux ifconifg命令中的具体信息
  10. 计蒜客-最大子阵列 / NYOJ题目44-子串和
  11. Rust: String 与 str
  12. ps4手柄驱动linux,GeForce 344.11正式版驱动:支持GTX 980/970,集成DSR选项
  13. 多项式算法的常数问题
  14. dns服务器哪个稳定,几个非常好用的DNS服务器(解决电信DNS此劫问题) - 电脑技术,dns,ricky,...
  15. 【MODIS数据处理#10】例五:用NDVI估算植被覆盖度
  16. android 视频画面切割,安卓手机如何剪裁视频 手机视频裁剪多余部分
  17. jsp中你必须记住的379
  18. Html div 打印自动分页,真正好用的网页打印和分页方法:CSS+DIV或元素ID
  19. python爬取下厨房网站首页图片request+bs4
  20. 小知识:btn.addEventListener is not a function报错处理

热门文章

  1. 阿里DRUID数据源
  2. 20155207王雪纯 《Java程序设计》实验一报告
  3. HTML5的Web存储
  4. CString,int,string,char*之间的转换(转)
  5. 能“看穿”换脸视频背后的AI模型,Facebook的反Deepfake方法有点东西
  6. 直播课 | 三维人体扫描与AI测量
  7. php点击按钮弹窗提示,WEB表单,给出弹出框提示,点击按钮报错
  8. PHP中将首字母大写的函数,在PHP中,使用()函数来将单词首字母转换为大写。
  9. ue4序列帧ui_UE4入门之路(UI篇):UI性能优化
  10. 【OpenCV】OpenCV实战从入门到精通之 -- 输入输出XML和YAML文件详解