既然已经有map了,那么WeakMap出现的原因是什么
那么就先说一下map的问题;map通过使其四个API方法共用两个数组(一个存放键,一个存放值)来实现。
给这种map设置值时会同时将键和值添加到这两个数组的末尾。从而使得键和值的索引在两个数组中相对应。
当从该map取值的时候,需要遍历所有的键,然后使用索引从存储值的数组中检索出相应的值。
这就导致了无论是赋值还是搜索都需要遍历真个数组,时间复杂度为O(n)。
同时也可能导致内存泄漏,因为数组会一直引用这每个键和值,导致无法垃圾回收机制无法在他们没有其他引用的时候进行回收。
帖子还没人回复快来抢沙发
叉树前序遍历的递归和非递归实现?
某公园内有个奇怪的摊主小周,他只在星期一、星期二、星期三、星期五和星期六工作,而且他只出售4种商品:玩具汽车、充气气球、橡皮泥和遥控飞机。<
cookies,sessionStorage 和 localStorage 的区别?
用一条线(可以是折线)分割多边形为面积相等的两部分
帖子还没人回复快来抢沙发