JS标准内置对象

241 阅读3分钟

一、Map对象

一、Map理论

 概念:Map对象保存键值对。任何值(对象或者原始值)都可以作为一个键或一个值。
 语法:new Map([iterable])与Set极其相似
 参数:参数只需是可迭代的集合即可,其元素为键值对,例如:[[1,'one'],[2,'two']],而null会被当做undefined。
 遍历:Map对象根据对象中的插入顺序来进行forof循环迭代,最后会返回一个形式为[key,value]的数组

二、Map应用

 1,创建空的Map
 对象Map创建直接new上即可,且当参数为空或者null时都是创建的空Map

2,创建有内容的Map
 根据语法可知,Map对象中放的都是可迭代的键值对数据;数据要以数组形式存储,键值对中间要用逗号隔开,且键值或者键名都需要用引号引起来
3,Map的常见Api
1)map.get()
  获取键对应的值,如果不存在就返回undefined

2)map.set()
  设置Map对象中键的值。返回该Map对象。
3)map.set造成的问题
  设置数据导致的内存泄漏问题,明明将数据置为null啦!在memory中,让其生成快照去查找该数据,你会发现数据仍被保留到了内存中。

二、WeakMap对象

一、WeakMap理论

 概念:WeakMap对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的;与Map相比较,Map中键和值都是任意的
 语法:new WeakMap([iterable])
 参数:参数是一个数组(二元数组)或者其他可迭代的且其元素是键值对的对象。每个键值对会被加到新的 WeakMap 里。null 会被当做 undefined。

二、WeakMap应用

 WeakMap对象有效的解决了Map对象中设置数据造成的内存泄漏问题。

三、Set对象

一、Set理论

 概念:Set对象里面允许存储任何类型的唯一值(没有重复数据),无论是原始值还是对象引用。
 语法:new Set([iterable]);里面存放可迭代数据
 参数:如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。如果不指定此参数或其值为null,则新的Set为空。
 返回值:创建的一个新的Set对象。

二、Set应用

1,创建空的Set
 对象Set创建直接new上即可,且当参数为空或者null时都是创建的空Set


2,创建有内容的Set
 根据语法可知,Set对象中放的都是可迭代的数据,且全部由[]包起来的。
3,创建存储任何值的Set
 Set对象中放任何类型的数据。
4,Set中不能存储相同的值
 Set对象中放任何类型的数据的唯一值,无重复值。
5,Set中的常见Api
6,Set的遍历
 Set属于可迭代的,所以直接利用数组相关方法foEach,再要么就直接利用Set对象方法entries与for of配合。