Map
用法
- 基本用法
const map = new Map()
const o = {p:'Hello World'}
map.set(o,'content')
map.get(o) // "content"
- map也可接收数组作为参数
const map = new Map([['name','小刘'],['age', 34]])
map.size // 2
map.has('name') // true
- Map和Set 都可以用来生成新的Map
cosnt set = new Set([['foo',1],['bar',2]])
const map = new Map(set)
const m1 = new Map([['bar',3]])
const m2 = new Map(m1)
- 只有对同一个对象的引用,Map结构才将其视为一个值
const map = new Map();
const k1 = ['a']
const k2 = ['a']
map.set(k1,111).set(k2,222)
map.get(k1) // 111
map.get(k1) // 222
k1 k2 值相同,但不是对同一个对象的引用,所以被Map视为两个键
- Map一键的简单类型
- 0 和 -0 是一个键
- true 和 字符串 true 是不同的键
- undefined 和 null 是两个不同的键
- NaN 是一个键
属性方法
- 属性
- size
- 方法
- Map.prototype.set(key,value)
- Map.prototype.get(key)
- Map.prototype.has(key)
- Map.prototype.delete(key)
- Map.prototype.clear()
- 遍历方法
- keys()
- values()
- entries()
- forEach
WeakMap
与Map区别
- 只能对象作为键名
- WeakMap 是弱引用 WeakMap的键名所指向的对象,不计入垃圾回收机制。
学习这个之前需要了解垃圾回收机制,详细可以看这篇文章内存管理 垃圾回收机制采用计数的方式,一个对象的引用为0 垃圾回收机制将自动回收这个对象的内存
而WeakMap 的引用不会增加对象的引用数,当对象的引用为0时,WeakMap里面的键名对象和对应键值会自动消失
我们可以通过 一个示例可以清晰的认识WeakMap的特点
以上是对wekMap 的理解
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!