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