返回
JavaScript ES(6-11)全版本语法 (九):Map
前端
2024-01-28 19:48:32
- 简介
Map对象是ES6中新增的数据结构,它是哈希表(hash table)的实现,用于存储键值对,每个键值对由一个键(key)和一个值(value)组成。Map对象与对象(object)类似,但是它具有以下特点:
- Map对象允许键为任意类型,而不像对象只能用字符串作为键。
- Map对象可以对键进行排序,而对象不能。
- Map对象有内置的遍历方法,而对象没有。
2. 创建Map对象
创建Map对象的方法有两种:
const map = new Map();
const map = new Map([
['key1', 'value1'],
['key2', 'value2'],
['key3', 'value3'],
]);
3. Map对象的方法
Map对象具有以下方法:
set(key, value)
:向Map对象中添加一个键值对。get(key)
:从Map对象中获取一个键所对应的值。has(key)
:检查Map对象中是否存在一个键。delete(key)
:从Map对象中删除一个键值对。clear()
:清空Map对象中的所有键值对。size
:返回Map对象中键值对的数量。keys()
:返回Map对象中所有键的迭代器。values()
:返回Map对象中所有值的迭代器。entries()
:返回Map对象中所有键值对的迭代器。
4. WeakMap对象
WeakMap对象是ES6中新增的另一种数据结构,它与Map对象类似,但是它只能存储对象,不能存储原始值。WeakMap对象主要用于存储DOM元素和监听器之间的关系,因为它不会阻止DOM元素被垃圾回收。
5. 创建WeakMap对象
创建WeakMap对象的方法与创建Map对象的方法相同:
const weakMap = new WeakMap();
const weakMap = new WeakMap([
[document.getElementById('element1'), 'value1'],
[document.getElementById('element2'), 'value2'],
[document.getElementById('element3'), 'value3'],
]);
6. WeakMap对象的方法
WeakMap对象具有以下方法:
set(key, value)
:向WeakMap对象中添加一个键值对。get(key)
:从WeakMap对象中获取一个键所对应的值。has(key)
:检查WeakMap对象中是否存在一个键。delete(key)
:从WeakMap对象中删除一个键值对。
7. 遍历Map和WeakMap对象
可以使用for...of
循环遍历Map和WeakMap对象:
const map = new Map([
['key1', 'value1'],
['key2', 'value2'],
['key3', 'value3'],
]);
for (const [key, value] of map) {
console.log(key, value);
}
输出:
key1 value1
key2 value2
key3 value3
8. 结论
Map和WeakMap对象是ES6中新增的两种数据结构,它们具有许多强大的特性。Map对象允许键为任意类型,并且可以对键进行排序,WeakMap对象可以存储对象,并且不会阻止DOM元素被垃圾回收。Map和WeakMap对象在实际开发中都有着广泛的应用。