map 是一种新的集合类型 , 真正的键值存储机制 , 之前都是用 object 的键值
map 和 object 的区别

Map 基本的API

  • 创建 Map const map = new Map()
  • 创建时, 初始化实例传入的参数 传入的一个可迭代的对象,需要包含键值对
  • set() 往创建好的 Map 添加 key | value
  • get() 通过key 访问value
  • has() 查找是否有 key
  • delete() 通过key 删除 Map 中的 key/value
  • clear() 清空Map
  • size Map的属性值,返回 Map 映射中的 key / value 的数量

  • Map 的 key 可以是任何值 Object Function 表达式

    • 原理是Map底层使用了 Same ValueZero 算法
  • Map 的key值

    • 当key值是字符串时 , key 的值是不能修改的
    • 当key 的值是 对象时 , key 的对象属性是可以修改的
  • Map 和 Object 的比较
    • 内存占用 : Map 比 Object 多存储 50% 的键值对
    • 插入性能 : 性能基本一样, 在浏览器中, Map 还是比 Object 更快一点
    • 查找速度 : Object 比 Map 更快
    • 删除性能 :一般不用删除 object , 都是设置Object为undefined 或 null 。但是Map 的delete() 操作也很快,大量执行删除操作一般都使用 Map