为什么提出Map
js对象,在传统上只能用字符串来作为键,这就对它的使用带来了很大的挑战。
一、Map
1. Map的键值对的键值可以为任何类型,包括对象。
2. Map的属性有:size。
3. Map的操作方法有:Map.prototype.[
set(key, value),
get(key),
has(key),
delete(key),
clear()
]
4. Map的遍历方法:Map.prototype.[keys(), values(), entries(), forEach()]。
5. Map的遍历顺序是插入顺序。
二、WeakMap 和 Map的区别
1. WeakMap只接受对象作为键名, null除外。不接受其他。
2. WeakMap键名所指向的对象,不计入垃圾回收机制。
3. WeakMap没有size属性。
4. WeakMap没有遍历方法和clear()方法。
5. WeakMap的操作方法只有:get, has, delete, set。