依据阮一峰的博客做的学习笔记
// map 构造的数据是由键值对组成的,与 Object 的区别就是 map 能够应用各种类型的数据作为键值 // 能够应用 键(值) - 值 的形式 //一个 map 的数据 const mapData = new Map() mapData.set(name, 'dddaaa') //给 map 增加属性 const obj = {name: 'dddaaa'} console.log('map',mapData.get(name)); //获取属性对应的数据 输入 dddaaa console.log('obj',obj.name); //输入 dddaaa //一些测试 mapData.set(obj, 'delete me') //将上方新建的 obj 对象作为键值 console.log('set', mapData.get(obj)); //删除 obj 键值数据 mapData.delete(obj) //应用 delete 删除 map 的一个属性 console.log('del', mapData.get(obj)) //因为 obj 对应的数据曾经被删除了,输入 undefined /** * map数据给同一个键屡次赋值,前面的会将后面的笼罩掉 * size 属性会返回 map 数据外面的成员总数 * set 属性用于给 map 数据增加成员 * get 属性用于获取 map 数据对应键名的值 * has 用于判断 map 数据中是否有该键名的成员 * delete 用于删除 map 数据中对应键名的成员,删除胜利返回 true 否则返回 false * clear 用于革除 map 数据中的所有成员,无返回值 * * map 的遍历办法 * Map.prototype.keys():返回键名的遍历器。 * Map.prototype.values():返回键值的遍历器。 * Map.prototype.entries():返回所有成员的遍历器。 * Map.prototype.forEach():遍历 Map 的所有成员。 * */ mapData.set('z', 'zzz') mapData.set(145, 'asjdhjk') mapData.set(true, 'zxjchx') mapData.forEach(item => { console.log('forEach', item); //会间接输入 map 里的值,不会输入键名 == values }) console.log('keys', mapData.keys()); //输入 MapIterator {'', 'z', 145, true} for (let keys of mapData.keys()) { //mapData.keys() 会返回 map 数据所有的键名 console.log('key',keys); //输入每一个键 }