校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > js语言和框架 > Set\Map\WeakMap\WeakSet
题目

既然已经有map了,那么WeakMap出现的原因是什么

解答

那么就先说一下map的问题;map通过使其四个API方法共用两个数组(一个存放键,一个存放值)来实现。

给这种map设置值时会同时将键和值添加到这两个数组的末尾。从而使得键和值的索引在两个数组中相对应。

当从该map取值的时候,需要遍历所有的键,然后使用索引从存储值的数组中检索出相应的值。

这就导致了无论是赋值还是搜索都需要遍历真个数组,时间复杂度为O(n)。

同时也可能导致内存泄漏,因为数组会一直引用这每个键和值,导致无法垃圾回收机制无法在他们没有其他引用的时候进行回收。

 

C 0条回复 评论

帖子还没人回复快来抢沙发