Map 和 WeakMap的区别

157 阅读1分钟

为什么提出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。