Map和WeakMap


Map是一组键值对的结构,用于解决以往不能用对象做为键的问题,具有极快的查找速度,函数、对象、基本类型都可以作为键或值。

Map声明方式

使用嵌套数组初始化映射

        const m1=new Map([
            ["key1","val1"],
            ["key2","val2"],
            ["key3","val3"]
        ]);

//使用自定义迭代器初始化映射

        const m2=new Map({
            [Symbol.iterator]:function*(){
                yield ["key1","val1"],
                yield ["key2","val2"],
                yield ["key3","val3"]
            }
        });

Map方法

set()方法添加元素

size方法获取数量

has()检测是否存在

get()读取元素

delete()删除元素

clear()清除所有元素

keys() / values() / entries() 返回可遍历的迭代对象

WeaMap

WeakMap 对象是一组键/值对的集

  • 键名必须是对象 WeaMap对键名是弱引用的,键值是正常引用

  • 垃圾回收不考虑WeaMap的键名,不会改变引用计数器,键在其他地方不被引用时即删除

  • 因为WeakMap是弱引用,由于其他地方操作成员可能会不存在,所以不可以进行forEach( )遍历等操作

  • 也是因为弱引用,WeaMap 结构没有keys(
    ),values( ),entries( )等方法和 size 属性

  • 当键的外部引用删除时,希望自动删除数据时使用 WeakMap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值