试题
考点

js语言和框架-ES和TS-Set\Map\WeakMap\WeakSet

面5笔5

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

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

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

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

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

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

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

 

评论
暂无评论

加载更多