该园用来记录个人的学习内容,有些杂乱,谅解~嘿嘿~

Chloe

自学前端的小菜鸟一枚呀~
记录学习的知识

es6新特性 - Set Map

一、定义

  1. Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构

  2. 什么是集合和字典:

    • 集合:是由一堆无序的、相关联的,且不重复的内存结构【数学中称为元素】组成的组合

    • 字典:是一些元素的集合。每个元素有一个称作key 的域,不同元素的key 各不相同

  3. 区别:

    • 共同点:集合、字典都可以存储不重复的值

    • 不同点:集合是以 [值,值]的形式存储元素,字典是以 [键,值] 的形式存储

二、Set

  1. Set是es6新增的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值,我们一般称为集合

    • Set本身是一个构造函数,用来生成 Set 数据结构
  2. 增删改查:

    • add():添加某个值,返回 Set 结构本身。当添加实例中已经存在的元素,set不会进行处理添加

    • delete():删除某个值,返回一个布尔值,表示删除是否成功

    • has():返回一个布尔值,判断该值是否为Set的成员

    • clear():清除所有成员,没有返回值

  3. 遍历:

    • keys():返回键名的遍历器

    • values():返回键值的遍历器

    • entries():返回键值对的遍历器

    • forEach():使用回调函数遍历每个成员

  4. Set的遍历顺序就是插入顺序:

    • keys方法、values方法、entries方法返回的都是遍历器对象

    • forEach()用于对每个成员执行某种操作,没有返回值,键值、键名都相等,同样的forEach方法有第二个参数,用于绑定处理函数的this

    • 扩展运算符和Set 结构相结合实现数组或字符串去重

    • 实现并集、交集、和差集

三、Map

  1. Map类型是键值对的有序列表,而键和值都可以是任意类型

    • Map本身是一个构造函数,用来生成 Map 数据结构
  2. 增删改查:

    • size:size属性返回 Map 结构的成员总数。

    • set():设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。同时返回的是当前Map对象,可采用链式写法

    • get():get方法读取key对应的键值,如果找不到key,返回undefined

    • has():has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中

    • delete():delete方法删除某个键,返回true。如果删除失败,返回false

    • clear():clear方法清除所有成员,没有返回值

  3. 遍历:

    • keys():返回键名的遍历器

    • values():返回键值的遍历器

    • entries():返回所有成员的遍历器

    • forEach():遍历 Map 的所有成员

  4. 遍历顺序就是插入顺序

四、WeakSet

  1. WeakSet可以接受一个具有 Iterable接口的对象作为参数

  2. 在API中WeakSet与Set有两个区别:

    • 没有遍历操作的API

    • 没有size属性

  3. WeackSet只能成员只能是引用类型,而不能是其他类型的值

  4. WeakSet里面的引用只要在外部消失,它在 WeakSet里面的引用就会自动消失

五、WeakMap

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

  2. 在API中WeakMap与Map有两个区别:

    • 没有遍历操作的API

    • 没有clear清空方法

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

  4. WeakMap的键名所指向的对象,一旦不再需要,里面的键名对象和所对应的键值对会自动消失,不用手动删除引用

posted @   Chloe56  阅读(128)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示