ES6新增数据结构WeakSet的用法详解
发布时间 - 2026-01-11 02:40:47 点击率:次WeakSet和Set类似,同样是元素不重复的集合,它们的区别是WeakSet内的元素必须是对象,不能是其它类型。

特性:
1.元素必须是对象。
添加一个number类型的元素。
const ws = new WeakSet() ws.add(1)
结果是报类型错误。
TypeError: Invalid value used in weak set
添加一个对象。
const ws = new WeakSet()
var a = {p1:'1', p2:'2'}
ws.add(a)
console.log(ws.has(a));
添加OK,结果显示:
true
可以通过WeakSet的has方法判断一个元素是否已在集合中。
如果不需要存储元素时,可以使用delete方法删除元素。
2.弱引用,不被计入垃圾回收
添加进WeakSet的元素对象,WeakSet不会对元素对像的引用计数加1,对于被添加进WeakSet的元素对象,只要该元素对象没有被除WeakSet以外的其他对象引用,就会被垃圾回收释放,在WeakSet中的该元素对象自动被释放,不会出现内存泄漏。
因为这一特性,其性能要比map要高,对于存储无顺序要求的,不重复的,临时存储的场景,可以使用它。
const ws = new WeakSet()
var a = {p1:'1', p2:'2'}
ws.add(a)
a = null
console.log(ws.has(a));
先将对象添加到WeakSet中,然后将对象设成null,然后再下面的has方法判定时,结果显示,表示WeakSet中已经不存在该对象。
false
3.不能遍历
因为其对内部的元素对象是弱引用,随时会被垃圾回收释放掉,所以其不支持size和forEach等遍历方法。
总结
以上所述是小编给大家介绍的ES6新增数据结构WeakSet的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# es6数据结构weakset
# ES6 系列之 WeakMap的使用示例
# 详解ES6通过WeakMap解决内存泄漏问题
# ES6中Set与WeakSet集合的深入讲解
# ES6新数据结构Set与WeakSet用法分析
# ES6中如何使用Set和WeakSet
# ES6中的WeakMap和WeakSet特性和用途详解
# 遍历
# 小编
# 这一
# 就会
# 在此
# 不需要
# 数据结构
# 可以通过
# 给大家
# 会对
# 然后再
# 要比
# 已在
# 不支持
# 可以使用
# 以其
# 不被
# 先将
# 所述
# 给我留言
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
专业商城网站制作公司有哪些,pi商城官网是哪个?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
jquery插件bootstrapValidator表单验证详解
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Linux后台任务运行方法_nohup与&使用技巧【技巧】
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
如何快速搭建虚拟主机网站?新手必看指南
Laravel如何生成URL和重定向?(路由助手函数)
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel中的Facade(门面)到底是什么原理
JavaScript如何实现路由_前端路由原理是什么
Laravel如何实现数据库事务?(DB Facade示例)
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
Laravel如何使用Vite进行前端资源打包?(配置示例)
如何快速生成可下载的建站源码工具?
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
长沙做网站要多少钱,长沙国安网络怎么样?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何实现javascript表单验证_正则表达式有哪些实用技巧
js实现点击每个li节点,都弹出其文本值及修改
微信小程序 scroll-view组件实现列表页实例代码
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Java解压缩zip - 解压缩多个文件或文件夹实例
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
如何用狗爹虚拟主机快速搭建网站?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
Laravel如何使用模型观察者?(Observer代码示例)
个人摄影网站制作流程,摄影爱好者都去什么网站?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
浅谈javascript alert和confirm的美化
如何在局域网内绑定自建网站域名?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何用已有域名快速搭建网站?
javascript读取文本节点方法小结
如何基于云服务器快速搭建网站及云盘系统?
Laravel如何使用Gate和Policy进行授权?(权限控制)
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法

