以下是我学习整理的相关Map笔记!方便以后复习和回顾 嘿嘿~ 如果有哪里错误的或者不合适的欢迎各位看官指正!!鞠躬~
1.1 含义及基本用法
首先哈,在ECMAScript 6 以前,JS对象就实现了用“键 / 值”的方式来存储,也就是使用 对象属性 作为键,再用 属性 来引用值。
看个例子:
js对象,键值对的集合(Hash结构),传统上只把 字符串 当做键!!!另外还有 数值,符号。
const data = {} // 定义一个对象
const oDiv = document.getElementById('box'); // 指向的就是id名<div id = 'box'></div>
data[oDiv] = 'abc'; // 获取 oDiv 作为键 并 赋值
赋完值之后,由于对象只接收 字符串 作为键名!!!
所以oDiv会自动转换:
oDiv ---> '[object HTMLDivElement]' // 转化成字符串
就是因为这个原因,所以它受到了限制,所以为了解决这个问题,就出现了Map。
为了解决此问题,ECMAScript 6 提供了 Map 数据结构,类似于对象,也是键值对的集合。但是,“键”的范围不限于 字符串。(与 Object 只能使用数值,字符串或符号作为键不同,Map 可以使用任何JavaScript数据类型作为键。Map的大多数特性都可以通过Object类型实现,但二者之间还是存在一些细微的差别,具体实践使用哪一个,还需细细甄别)
Map 结构 ,提供了 键值 一 一对应的模式,这样更能够完美的体现 Hash结构 ,如果说你需要一个键值对的数据,那么 Map 肯定要比 Object 更合适!
例子:
<script>
//Map 是一个构造函数
const a = new Map(); // 实例化一个对象
const b = {c:"hello"};
// 用set方法 a.set(把...作