JS的Map对象
- 概述
ES6新增的一种数据结构Map,对操作键值对很友好,键值对集合,提供属性和方法供开发者使用。存有键值对,键可以是任何数据类型;按照原始插入顺序存储(FIFO)原则;具有表示映射大小的属性。 - 创建
const colors = new Map(iterable)

- 方法
-
常用方法
- set():为Map对象设置键值对
- get():获取Map对象中键的值
- entries():返回Map对象中键值对数组
- keys():返回Map对象中键数组
- values():返回Map对象中值数组

-
其他方法
- clear():删除Map对象中所有的元素
- delete():删除由键指定的元素
- has():如果键存在,返回true
- forEach():键值对调用回调

- 属性
- size:获取Map对象中键值对个数

- Map对象和Object对象对比
| 对比项 | 对象 | Map |
|---|---|---|
| Size | 手动计算个数 | size属性直接获取键值对个数 |
| 键类型 | 必须是字符串或Symbols | 任何数据类型 |
| 键顺序 | 无序 | 按照插入顺序存储 |
| 性能 | 无 | 频繁增删键值对场景性能优势 |
| 默认 | 有默认键 | 无默认键 |
- 扩展
-
Map合并,键相同会覆盖

-
基本数据类型的键相同会覆盖,引用类型的键相同不会覆盖

-
clear()方法没有返回值
-
Array.from将Map对象转换成数组

-
获取未知的键返回undefined




















