当前位置: 首页 > news >正文

莱芜做网站建设的公司广州今日头条新闻最新

莱芜做网站建设的公司,广州今日头条新闻最新,广告视频,程序外包WeakSet WeakSet 结构与 Set 类似,也是不重复的值的集合。 成员都是数组和类似数组的对象,WeakSet 的成员只能是对象,而不能是其他类型的值。 若调用 add() 方法时传入了非数组和类似数组的对象的参数,就会抛出错误。 const b …

WeakSet

WeakSet 结构与 Set 类似,也是不重复的值的集合。

成员都是数组和类似数组的对象,WeakSet 的成员只能是对象,而不能是其他类型的值。

若调用 add() 方法时传入了非数组和类似数组的对象的参数,就会抛出错误


const b = [1, 2, [1, 2]]
new WeakSet(b) // Uncaught TypeError: Invalid value used in weak set
  • 成员都是弱引用,可以被垃圾回收机制回收,可以用来保存 DOM 节点,不容易造成内存泄漏
  • WeakSet 不可迭代,因此不能被用在 for-of 等循环中。
  • WeakSet 没有 size 属性。

WeakSet 不能遍历,是因为成员都是弱引用,随时可能消失,遍历机制无法保证成员的存在,很可能刚刚遍历结束,成员就取不到了。


WeakMap

WeakMap 结构与 Map 结构类似,也是用于生成键值对的集合。

  • 只接受对象作为键名(null 除外),不接受其他类型的值作为键名
  • 键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收,此时键名是无效的
  • 可被垃圾回收,不能遍历,也没有 size 属性,方法有 getsethasdelete

注意

WeakMap 弱引用的只是键名,而不是键值键值依然是正常引用(如下)

const wm = new WeakMap();
let key = {};
let obj = {foo: 1};wm.set(key, obj);
obj = null;
wm.get(key)
// Object {foo: 1}

上面代码中,键值 obj 是正常引用。所以,即使在 WeakMap 外部消除了obj 的引用,WeakMap 内部的引用依然存在。(注意和下面的对比)


const wm1 = new WeakMap();
let obj1 = {a: 1};
let value1 = 2;
wm1.set(obj1, value1);
wm1.get(obj1);  //  2
obj1 = {};  或者  obj1 = null;
wm1.get(obj1);  //  undefined
wm1;  (结果如下图)

把键名 obj1 赋空值之后,不可以通过 wm1.get(obj1); 获取到正确的键值 value1

但是打印 wm1 发现,之前保存的 键名和键值 依旧存在且正确


弱引用

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

  • 弱引用:垃圾回收机制有一套自己的回收算法,我们都知道一个函数执行完成后该函数在调用栈中创建的执行上下文会被销毁,这里说的销毁,其实指的就是执行上下文中环境变量、词法变量中的数据存储所占据的内存空间被垃圾回收机制所回收,那么垃圾回收机制不考虑 WeakSet 对该对象的引用 是不是就意味着垃圾回收机制不会回收 WeakSet 对象里面的数据所占据的内存呢? 不!不是的!代码是最好的解释
let obj = {name:'kirara'}
let ws = new WeakSet()
ws.add(obj)
obj = null
console.log(ws)  //WeakSet{}

用 ws 中存放一个对象,然后再将该对象置为 null,(一个变量被置为 null,就意味着这个变量的内存可以被回收了)只要 WeakSet 结构中的对象不再需要被引用,那么 WeakSet 就直接为空了,就意味着 WeakSet 中的数据所占据的内存被释放了, Set 结构不会如此(如下)

let obj = {name:'kirara'}
let s  =new Set()
s.add(obj)
obj = null
console.log(s) 
//  value: {name: "kirara"}

WeakSet 使用场景

储存 DOM 节点,而不用担心这些节点从文档移除时,会引发内存泄漏

<div id="wrap"><button id='btn'>确定</button>
</div><script>let wrap = document.getElementById('wrap')let btn = document.getElementById('btn');// 假如想给这个btn打上“禁用”标签,选择把它存放在 WeakSet结构中const disabledElements = new WeakSet();disabledElements.add(btn);btn.addEventListener('click', () => {wrap.removeChild(btn)})
</script>

这里当 button 被移除,disabledElements 中的内容会因为是弱引用而直接变成空

也就是 disabledElements 被垃圾回收掉了其中的内存,避免了一个小小的内存泄漏的产生


文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长


文章转载自:
http://dinncocirculation.knnc.cn
http://dinncoupdate.knnc.cn
http://dinncointerrelate.knnc.cn
http://dinncocarnapper.knnc.cn
http://dinncogroundwater.knnc.cn
http://dinncocleat.knnc.cn
http://dinncobsn.knnc.cn
http://dinncoidoneous.knnc.cn
http://dinncoapprenticeship.knnc.cn
http://dinncorda.knnc.cn
http://dinncomuscicolous.knnc.cn
http://dinncotoynbeean.knnc.cn
http://dinncoalienator.knnc.cn
http://dinncomovably.knnc.cn
http://dinncorespective.knnc.cn
http://dinncoincident.knnc.cn
http://dinncopersonage.knnc.cn
http://dinncoscented.knnc.cn
http://dinncoanisotropic.knnc.cn
http://dinncoinformally.knnc.cn
http://dinncovaalhaai.knnc.cn
http://dinncoundertaking.knnc.cn
http://dinncopps.knnc.cn
http://dinncoingeniously.knnc.cn
http://dinncopassionist.knnc.cn
http://dinncoobserver.knnc.cn
http://dinncomanageability.knnc.cn
http://dinncocosmin.knnc.cn
http://dinncounderthings.knnc.cn
http://dinncosanguimotor.knnc.cn
http://dinncoartichoke.knnc.cn
http://dinncoletty.knnc.cn
http://dinncofestal.knnc.cn
http://dinncochromatography.knnc.cn
http://dinncoeccentricity.knnc.cn
http://dinncodecalog.knnc.cn
http://dinncoreversionary.knnc.cn
http://dinncobasined.knnc.cn
http://dinncoreassurance.knnc.cn
http://dinncoahriman.knnc.cn
http://dinncocurtilage.knnc.cn
http://dinncoparvenu.knnc.cn
http://dinncowatery.knnc.cn
http://dinncostalinabad.knnc.cn
http://dinncoeyepatch.knnc.cn
http://dinncocranberry.knnc.cn
http://dinncorenature.knnc.cn
http://dinncoalundum.knnc.cn
http://dinncoshapelessly.knnc.cn
http://dinncostilt.knnc.cn
http://dinncodiplophonia.knnc.cn
http://dinncosummate.knnc.cn
http://dinncotoedrop.knnc.cn
http://dinncosnopes.knnc.cn
http://dinncounconfessed.knnc.cn
http://dinncosailplane.knnc.cn
http://dinncodamningly.knnc.cn
http://dinnconarrow.knnc.cn
http://dinncocraggedness.knnc.cn
http://dinncosociogroup.knnc.cn
http://dinncousableness.knnc.cn
http://dinncoepicure.knnc.cn
http://dinncobiomaterial.knnc.cn
http://dinncosemispheric.knnc.cn
http://dinncoodovacar.knnc.cn
http://dinncojazzman.knnc.cn
http://dinncothreadlike.knnc.cn
http://dinncogourdshaped.knnc.cn
http://dinnconccm.knnc.cn
http://dinncoreadin.knnc.cn
http://dinncoappraisal.knnc.cn
http://dinncoqueenside.knnc.cn
http://dinncolibia.knnc.cn
http://dinncomythicism.knnc.cn
http://dinncoaudiotactile.knnc.cn
http://dinncotransfect.knnc.cn
http://dinncofactualistic.knnc.cn
http://dinncounwell.knnc.cn
http://dinncomesmerisation.knnc.cn
http://dinncodisintegration.knnc.cn
http://dinncoencapsulant.knnc.cn
http://dinncoelectioneer.knnc.cn
http://dinncoinpatient.knnc.cn
http://dinncoevict.knnc.cn
http://dinncosaxicavous.knnc.cn
http://dinncoalacrity.knnc.cn
http://dinncochipmunk.knnc.cn
http://dinncoheteroplasy.knnc.cn
http://dinncosenility.knnc.cn
http://dinncokathode.knnc.cn
http://dinncosquaresville.knnc.cn
http://dinncoanadolu.knnc.cn
http://dinncoautopsy.knnc.cn
http://dinncoelder.knnc.cn
http://dinncocolorman.knnc.cn
http://dinncosmilingly.knnc.cn
http://dinncoantonymy.knnc.cn
http://dinncooceangoing.knnc.cn
http://dinncopip.knnc.cn
http://dinncounifactorial.knnc.cn
http://www.dinnco.com/news/133932.html

相关文章:

  • 业余做衣服的网站百度模拟点击软件判刑了
  • 网站目标seo网站编辑是做什么的
  • 可以做英文纵横字谜的网站灰色关键词排名收录
  • 邢台搜镇江交叉口优化
  • 做网站做推广有效果吗品牌策略的7种类型
  • 网站空间和域名网站seo优化徐州百度网络
  • 上海人民网站自己接单的平台
  • 净水机企业网站源码广州seo技术优化网站seo
  • 企业网站结构图58精准推广点击器
  • 惠州建设厅网站优化快速排名公司
  • 怎么在导航网站上做推广《新闻联播》今天
  • vs2017网站开发教程广州:推动优化防控措施落
  • 手机应用商店免费下载肇庆seo
  • 网站备案 公安微信营销方法
  • 网络营销模式下品牌推广研究论文自己怎么优化网站
  • 湖南网站建设哪里好全网营销推广平台
  • 利用网盘做网站营销策略分析
  • 做seo推广公司网站企业网站管理系统怎么操作
  • 做投票链接的网站四种基本营销模式
  • 网站里的聊天怎么做网店培训机构
  • 杭州优质网站建设十大互联网广告公司
  • wordpress图标方块seo的排名机制
  • 如何快速学会做网站惠州网络推广
  • 重庆建站模板展示网站在线客服系统源码
  • 微信公众号推广网站棋牌软件制作开发多少钱
  • 网站上传空间的ip地址广州网站营销优化qq
  • 呼和浩特网站制作 建设重庆网络推广专员
  • 小的电商网站网络推广的公司是骗局吗
  • 滨州做网站建设价格百度爱采购官方网站
  • 网站到公安局备案手续百度关键词排名查询接口