编程技术文章分享与教程

网站首页 > 技术文章 正文

Set、Map、WeakSet 和 WeakMap 的区别

hmc789 2024-11-18 12:54:58 技术文章 2 ℃

1.Set

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

Set本身就是一个构造函数,用来生成 Set 数据结构。

成员唯一、无序且不重复;

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

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

2.WeakSet

WeakSet 结构与 Set 类似,也是不重复的值的集合。但是,它与 Set 有两个区别。

成员都是对象;

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

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

3.Map

JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作按键。这给它的使用带来了很大的限制。

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

4.WeakMap

WeakMap结构与Map结构类似,也是用于生成键值对的集合。

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

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

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

想要了解更多关于前端技术内容欢迎关注尚硅谷教育!

前端JS高阶面试题

前端设计模式-面试题

前端ES6高频面试题

WEB前端工具vscode中Tasks及Emmet的应用

如何用Node监听80端口

Tags:

标签列表
最新留言