Objects 和 maps 的比较:
Object的键只能是字符串或者 Symbols,但 Map 的键可以是任意值,包括函数、对象、基本类 型。
Map 中的键值是有序的,而添加到 Object 对象中的键则不是。因此,当对它进行遍历时,Map 对象是按插入的顺序返回键值。
可以通过 size 属性直接获取一个 Map 的键值对个数,而 Object 的键值对个数只能手动计算。
Map 可直接进行迭代,而 Object 的迭代需要先获取它的键数组,然后再进行迭代。
Map 在涉及频繁增删键值对的场景下会有些性能优势。
Map 类型实例化语法:
1 2 |
new Map([iterable]) let map = new Map([[ 'key1' , 'value1' ], [ 'key2' , 'value2' ]]); |
Map 类型实例属性与方法:
1 2 3 4 5 6 7 8 9 10 |
Map.prototype.size // 元素数量 Map.prototype.clear() // 移除Map对象的所有键/值对 。 Map.prototype. delete (key) // 如果 Map 对象中存在该元素,则移除它并返回 true;否则如果该元素不存在则返回 false Map.prototype.entries() // 返回一个新的 Iterator 对象,它按插入顺序包含了Map对象中每个元素的[key, value] 数组。 Map.prototype.forEach(callbackFn[, thisArg]) // 按插入顺序,为 Map对象里的每一键值对调用一次callbackFn函数。 Map.prototype.get(key) // 返回键对应的值,如果不存在ÿ
|