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 eachfor 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

  1. WeakMap的键只能为对象
  2. WeakMap没有Symbol.iterator方法 不能遍历
  3. WeakMap没有clear()方法
  4. 当对象置空后 垃圾回收机制会使WeakSet中该对象也会删除 避免出现了内存泄漏
  5. WeakMap没有size属性 不能获取数量