Map
map
设置键值对
map与对象的一个区别就是 map的键是可以为任意类型,而对象会将属性类型变为字符串
const people = new Map()
people.set("lyy", 25)
people.set("fk", 23)
people.set("tt", 20)
常用方法
set()
设置map中键值对
get()
获取key对应的值
has()
是否包含对应键
delete()
删除对应键的值
clear()
清除map
可以用for each
和for of
进行循环
people.get("lyy") //25
people.delete("fk")
for (const [key, value] of people) {
console.log(key, value)
}
people.forEach((value, key, map) => {
console.log(key, value)
})
people.size //2 获取数量
people.clear()
//有初始值
const fruits = new Map([["apple", 6], ["banana", 5]])
因为map的属性类型可以是任何类型,因此我们经常可以再map中存储关于对象的信息 而不是把信息存储在对象上
WeakMap
类似WeakSet
- WeakMap的键只能为对象
- WeakMap没有Symbol.iterator方法 不能遍历
- WeakMap没有clear()方法
- 当对象置空后 垃圾回收机制会使WeakSet中该对象也会删除 避免出现了内存泄漏
- WeakMap没有size属性 不能获取数量