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

简述WeakSet方法与垃圾回收

解答

WeakSet 只支持 add,has 和 delete 方法

·WeakSet.add(value):向 WeakSet 实例添加一个新元素

·WeakSet.delete(value):清除 WeakSet 实例的指定元素

·WeakSet.has(value):返回一个布尔值,表示某个值是否在

// WeakSet add has delete方法
const weakset = new WeakSet();
const arr = ["hdcms"];
//添加操作
weakset.add(arr);
console.log(weakset.has(arr)); // true

//删除操作
weakset.delete(arr);

//检索判断
console.log(weakset.has(arr)); // false

WeakSet 中的对象都是弱引用,如果其他对象都不再引用 WeakSet 集合中的对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象还存在于 WeakSet 之中

通过定时器来查看,当 WeakSet 里的对象无引用时,则会被浏览器垃圾回收

const weakset = new WeakSet([['jsx']]);
console.log(weakset);

setTimeout(() => {
console.log(weakset); // WeakSet {}
}, 100);
C 0条回复 评论

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