从下面这几个方面简单介绍:JS 垃圾回收机制,几种?weakMap, WeakSet
JS 垃圾回收机制,
标记清除,引用计数。
标记清除用的比较多,引用计数用的比较少,会存在循环引用导致没法进行内存回收。
Set
Set 数据结构,类似于数组,但是值都是唯一的。Array.from 可以将其转变为数组
Set 遍历顺序就是插入顺序,可用于保存回调函数列表。
WeakSet 成员只能是对象。其中的对象都是弱引用,垃圾回收机制不用考虑其中对象得引用。不可遍历,不适合引用,因为会随时消失。可用于临时存放一些对象,以跟存放对象相关得信息。
Map
Map 提供了值-值的对应,Object 提供了字符串-值得对应。Map 的键是跟内存地址绑定了,解决了同名属性碰撞的问题。
weakMap,weakSet 结构有助于防止内存泄露。
weakMap 的典型场合就是使用 DOM 作为键名。
WeakRef 对象,用于直接创建对象的弱引用
网友评论