第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【九月打卡】第2天 JS 垃圾回收

標(biāo)簽:
JavaScript

课程名称2周刷完100道前端优质面试真题
课程章节:第5章 前端面试技能拼图3 :知识深度 - 原理和源码
主讲老师双越

课程内容
今天学习的内容包括:
5-4 -JS内存垃圾回收用什么算法最近学习
5-5 -【连环问】JS闭包是内存泄漏吗
5-6 -如何检测JS内存泄漏
5-7 -JS内存泄漏的场景有哪些
5-8 -JS内存泄漏的场景有哪些-扩展-WeakMap和WeakSet
主要是讲了 垃圾回收是啥,什么情况下会出现,如何规避。

课程收获
垃圾回收,即回收以及使用过用不着的变量。window.XX 有些数据外部引用的原因不能被回收。计划之外不能回收的即是内存泄漏了。

标记清除法

从根节点(或全局变量)往下去遍历,只要是能找到的,就标记一下。
其他的找不到的(即无用的、可回收的变量)就清除掉。

区别于引用计数。引用一次加一次,循环引用会出问题。

闭包不是内存泄漏

闭包内的变量没有被垃圾回收。要回收手动赋值 null。

内存变化监测

用 devTools performance 查看,最右侧清空,左侧开始录制。
图片描述

vue 里会出现内存泄漏场景

设置全局变量,设置全局函数,设置全局事件,使用定时器,自定义事件引用,组件销毁时要清除。
eg.

mounted() {
	window.arr = this.arr;
	window.printArr = () => {this.Fn()};
	this.timer = setInterval(() => {
		this.timerFn();
	}, 3000);
	window.addEventListener('resize', this.resizeFn);
	event.on('onChange', this.eventFn);
},
beforeUnmount() {
	window.arr = null;
	window.printArr = null;
	if (this.timer) {
		clearInterval(this.timer);
	}
	window.removeEventListener('resize', this.resizeFn);
	event.off('onChange', this.eventFn);
}  

weakMap WeakSet

弱引用,不影响销毁。
key 必须是引用类型。没有size,length,无法用 foreach。用于对象间的关系。

一个正常的内存变化图:
图片描述

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消