Map 与 WeakMap
Map 映射表
在MDN上是这么描述 Map 的:
该Map对象保存键值对并记住键的原始插入顺序。任何值(对象和 原始值)都可以用作键或值。
说到键值对形式的数据格式,我会很容易联想到数组(Array)和对象(Object),我们先来看一下它的区别
/**
* Array
* 在 javascript 中数组是一组数据的集合,并且可进行迭代的
* key 必须为number,从 0 开始依次递增,
* vaule 可以为任何类型
*/
const array = new Array([a,b,c,d,e])
console.log(array[0]); // a
array.forEach((value,key)=>{
console.log(value+' => '+key + ', ');
}) // 0 => a, 1 => b, 2 => c, 3 => d, 4 => e
/**
* Object
* 在 javascript 中对象是一组属性的集合,不能进行迭代
* key 必须为string,通常我们称它为属性名
* vaule 可以为任何类型
*/
const object = new Object({
name: 'aaa'
})
console.log(object.name); // aaa
object.forEach((value,key)=>{
console.log(key+' => '+value + ', ');
})// Error 因为Object不可以进行迭代
About 4 min