本文主要是介绍Map WeakMap 学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/* map weakmap
javascript对象本质上是键值对的集合 hash结构
对象只能用字符串当作键 如果不是字符串 会调用toString()转换为字符串
为了解决这个问题 es6提供了map数据结构 这个构造函数,它类似于对象也是键值对的集合 但是key的范围不限于字符产 可以是任何类型
实例方法:
size:key数量
key(key,value):添加/修改,返回当前map对象本身
get(key):获取,读取key对应的value,如果key不存在,返回undefined
has(key):key是否存在map对象中,返回布尔值
delate(key):删除key 返回true,删除失败返回false
clear():清空
遍历方法:
key():返回key名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():遍历Map的所有成员
*/
//创建一个空的map对象
// const map = new Map()
//实例化方法操作 set添加成员
/* map
.set(2022, "赚钱多多")
.set('target', "脱单不脱发")
console.log(map); */
//传参需要一个二维数组
const map = new Map([
[2022, "赚钱多多"],
['target', "脱单不脱发"]
])
console.log(map)
console.log(map.get(2022))
console.log(map.has(2022))
console.log(map.size)
//遍历
//遍历整个map
for (let item of map) {
console.log(item)
}
for (let [key, value] of map) {
console.log(key, value)
}
for (let item of map.entries()) {
console.log(item)
}
//遍历键
for (let key of map.keys()) {
console.log(key)
}
//遍历值
for (let value of map.values()) {
console.log(value)
}
/*WeakMap 和 map 区别
1.WeakMap只接受对象作为键名
2.WeakMap的键名所指向的对象,不进入垃圾回收机制
*/
const map2 = new WeakMap();
// map2.set(1, 2)
// map2.set(Symbol(), 2)
// map2.set(null, 2)
map2.set([], {})
map2.set(document, 2022)
这篇关于Map WeakMap 学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!