问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Map、WeakMap、Set、WeakSet、Object

发布网友 发布时间:7小时前

我来回答

1个回答

热心网友 时间:2小时前

本文旨在解析Map、WeakMap、Set、WeakSet、Object在JavaScript中的定义、使用方式、适用场景以及它们之间的差别。

Map是什么?它是一种类似于对象的数据结构,通过键值对表示数据,键和值可以是任意类型的数据。

Map的使用场景主要在于需要空间换时间的情况下,当数据量较大时,Map的使用效率高于对象。

基本使用方式为`new Map()`,可以使用构造函数进行初始化,并可以通过`.set(key, value)`方法设置键值对,通过`.get(key)`方法获取值。

需要注意,Map中键值对的覆盖规则是后面的键值会覆盖前面的键值。

WeakMap的数据类型仅支持对象,且其对象是弱引用,这意味着在某些情况下,对象可能会被垃圾回收。WeakMap适用于缓存函数、访问计数器等场景。

使用WeakMap时应避免使用`keys()`、`values()`和`entries()`等方法,因为对象可能在未知时间被回收。另外,WeakMap对象不可枚举,无法获取大小。

Set是什么?它是一种值集合,集合中元素唯一且不重复。Set使用方式与Map类似,使用`new Set()`初始化,通过`.add(value)`方法添加元素,通过`.has(value)`方法检测元素是否存在。

注意的是,Set中的元素检测算法不基于严格的相等,这意味着在Set中存储undefined、null和NaN时只会存储一次。同时,Set中存储的undefined和infinity数量会限定在单个。

Set的适用场景包括对象类型的存储和数组去重。例如,可以使用Set对数组进行去重。

WeakSet与Set类似,但只能存放对象类型,不能存放基础类型。WeakSet的元素引用是弱引用,当元素没有其他引用时,WeakSet中的元素会被回收。

WeakSet适用于存储DOM节点,能够确保节点在不再被引用时被垃圾回收。

Object是什么?在JavaScript中,它是一种构造函数,用于创建对象。Object提供了一系列方法,如`.assign()`用于复制属性到目标对象,`.create()`用于创建新对象,`.defineProperty()`用于定义或修改对象的属性,以及`.entries()`用于获取对象自身的可枚举属性的键值对数组。

这些方法如`.assign()`、`.create()`和`.defineProperty()`分别用于属性赋值、对象创建和属性定义等操作。这些操作可以用于对象的深度复制、原型链的修改和属性描述符的定义。

回顾知识,JavaScript的数据类型分为基础类型和引用类型,基础类型包括字符串、数字、布尔值、null、undefined以及新增的Symbol类型,而引用类型包括对象、数组、函数、日期和正则等。

强引用和弱引用的区别在于,强引用的变量保存的对象不会被垃圾回收,而弱引用的变量在没有其他引用时,所保存的对象会被垃圾回收,如在WeakMap中使用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
生产车间员工岗位职责及权限、任职要求分别是什么 车间普工岗位职责(集合6篇) "上海"的地名是谁起的,什么意思? 老公的爸妈是表亲,我爸妈也是表兄妹,孩子会怎么样吗? 爸妈是近亲结婚他们是表兄妹 我生孩子会有问题吗? 爸妈是亲表兄妹结婚对这代没事。。不知道下一代有问题没。。。_百度... 鉴证实录 法证女朋友怎么死的0 沈阳御通实业有限公司怎么样? 玉环御通广告有限公司御通服务 问御石通效果怎么样啊,治疗结石的 【校招VIP】js语言和框架之Set\Map\WeakMap\WeakSet JavaScript 中 Set、Map、WeakSet 、WeakMap 的区别 为什么英语中会有否定转移? 英浯中什么叫作否定的转移? 画跑道用auto CAD,老师教的是画一条多段线偏移,再画圆弧对称过去,最后... 电脑一直叫滴滴的显示器黑屏台式电脑开机时主机一直叫嘀嘀嘀的显示器... 我刚转了一个洗车场才刚刚开始做就听到要拆迁万一拆迁我交出去的转让... 借用场地协议书(集锦10篇) 各类协议书格式 手机上网看小说上什么网省流量 看小说用什么软件好全本免费的 哪个软件看小说全免费不花钱 手机浏览器哪个好用又省流量 惊悚之夜主演角色 张希临电影 惊悚之夜基本信息 白色车有刮痕怎么处理 ...今年考上大专的,问下可以9月份新生 问下还可以去当兵不 我89年的,大专毕业,今年想当兵,可以吗?有什么条件? 彻底删除QQ聊天记录? ...样才能查看得到她的聊天记录呢?哪个大侠帮忙啊! ! 王者峡谷中怎么使用墨子打辅助? 认识我们的肌肤——表皮层 c51 不用a/d转换 怎么控制单片机i/o口 由暗到亮逐渐变化 dota6.71aiDotA v6.71b地图中文改动 dota 6.60ai 求dota AI版的作弊图?虐电脑用的 如何快速入门java? java如何自学怎么入门 留级是否会记录在档案里? 03年出生小学到大学学历时间 三年级可以留级吗 ...诱惑,面对人生的各种考验,我们应当怎样选择? 我的职场我做主 回潮到底是什么意思 月经回潮是什么意思 紫外线消毒灯面积要求?! 紫外线消毒灯面积要求是多少? 熟娴韬略 在公交车上有外国人当门听音乐,我想从他身边过去,我是应当说“sorry... 飞信号是什么,我注册了飞信,好像没有飞信号