92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

關于JS中作用域的銷毀和不銷毀的情況總結

2021-7-26    前端達人

window全局作用域->頁面關掉才銷毀
函數執行會形成私有的作用域

1)作用域的銷毀
一般情況下,函數執行形成一個私有的作用域,當執行完成后就銷毀了->節省內存空間

2)作用域的不立即銷毀
function fn(){
var i=10;
return function(n){
console.log(n+i++);
}
}
fn()(15);//->先執行fn,有一個私有的變量i=10,返回一個堆內存地址 xxxfff111,我們發現這個地址還用到了一次,那么當前的這個fn形成私有作用域(A)就不能立即銷毀了,xxxfff111(15)->輸出25,A中的i變為11;當xxxfff111執行完了,發現這個地址沒用了,瀏覽器就把A、xxxfff111都釋放了

fn()(20);//->在執行fn的時候一切都從新開始了,和上面的步驟是一樣的->輸出30

3)作用域的不銷毀:形成一個私有作用域,里面的內容被外面占用了
function fn(){
var i=10;
return function(n){
console.log(n+i++);
}
}
var f=fn();//->fn執行形成一個私有的作用域A,A中有一個私有的變量i=10,A中返回一個地址xxxfff11,被外面的f占用了,那么當前的A就不能銷毀了
f(15);//->輸出25,讓A中的i=11
f(20);//->輸出31,讓A中的i=12
...
當我們知道f用完的時候,為了優化性能,我們讓f=null,這樣的話A中的xxxfff111沒人占用了,瀏覽器會把A和xxxfff111都釋放了


幾種不銷毀常用到的形式:
1)函數執行,返回一個引用數據類型的值,并且在函數的外面被別人接收了,那么當前函數形成的私有作用域就不在銷毀了-->例如上面的案例

2)在函數執行的時候,里面的一個小函數的地址賦值給了我們的外面元素的點擊事件,那么當前小函數也相當于被外面占用了,大函數執行形成的私有的作用域也不銷毀了
//每一次循環都執行自執行函數形成一個私有的作用域(循環三次就有三個作用域,每一個作用域中都有一個i,第一個存儲的是0,第二個存數的是1..),在每一個私有的作用域中都把里面的函數綁定給了外面元素的點擊事件,這樣的話每一次形成的作用域都不銷毀了(三個不銷毀的作用域)
var oLis=document.getElementsByTagName("li");
for(var i=0;i<oLis.length;i++){
~function(i){
oLis[i].onclick=function(){
tabChange(i);
}
}(i);
}

3)在使用setTimeout實現輪詢動畫的時候,我們如果move需要傳遞參數值,那么像下面這樣的寫法會行成很多的不銷毀的作用域,非常的耗性能
function move(tar){
<js code>

//window.setTimeout(move,10); ->第二次執行move的時候我們沒有給它傳值(這樣寫不行)
window.setTimeout(function(){
move(tar);
},10);//->這樣寫實現了,但是每一次執行定時器都會形成一個私有的所用域(匿名函數形成的)A,在A中使用了上級作用域中的tar的值,而且執行了move又形成了一個小的作用域(而在小的作用域中會使用tar的值),這樣每一次定時器形成的A都不能銷毀了
}
move(100);//->第一次這樣執行傳遞100

//解決辦法:
function move(tar){
~function _move(){
<js code>
window.setTimeout(_move,10);
}();
}
move(100);//->第一次這樣執行傳遞100


JS中內存空間釋放的問題(堆內存、棧內存)
[谷歌瀏覽器]
我們開辟一個內存,可能或有一些其他的變量等占用了這個內存,谷歌瀏覽器都會間隔一段時間看這個內存還有沒有被占用,如果發現有沒有被占用的內存了,就自己幫我們回收了(內存釋放)

[火狐和IE]
我們開個內存,當我們引用了它,就在內存中記錄一個數,增加一個引用瀏覽器就把這個數+1,減少一個引用,瀏覽器就把這個數-1...當減到零的時候瀏覽器就把這個內存釋放了;但是有些情況下(尤其是IE)記著記著就弄亂了,內存就不能釋放了-->瀏覽器的內存泄露

var obj={};
我們養成一個好的習慣,當我們obj這個對象使用完成了,我們手動的obj=null (null空對象指針),瀏覽器會自己把剛才的堆內存釋放掉

標簽: javascript




藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

截屏2021-05-13 上午11.41.03.png



文章來源:博客園

分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


日歷

鏈接

個人資料

藍藍設計的小編 http://www.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
大桥未久av一区二区三区| 在线精品国产欧美| 午夜精品一区二区三区在线播放| 亚洲欧洲视频在线| 成人自拍性视频| 精品成人在线视频| 操91在线视频| www.欧美视频| 午夜精品久久久久久久久久久久久| 欧美日韩国产丝袜美女| 亚洲色图50p| 欧美激情在线观看| 91精品视频专区| 国产成人在线一区| 久久久免费观看| 欧美视频裸体精品| 欧美激情一区二区三级高清视频| 久久欧美在线电影| 日韩av网站在线| 麻豆乱码国产一区二区三区| 91精品国产高清自在线| 国产综合在线看| 色婷婷**av毛片一区| 欧洲日韩成人av| 亚洲成人免费在线视频| 高清日韩电视剧大全免费播放在线观看| 欧美与欧洲交xxxx免费观看| 97超级碰碰碰| 欧美激情欧美狂野欧美精品| 国内精品久久久| 国产91|九色| 亚洲欧美国产视频| 欧美韩国理论所午夜片917电影| 亚洲国产99精品国自产| 136fldh精品导航福利| 国产精品69久久久久| 国产亚洲a∨片在线观看| 欧美日韩成人免费| 亚洲欧美日韩高清| 亚洲在线一区二区| 欧美成人sm免费视频| 在线日韩日本国产亚洲| 日韩精品免费视频| 亚洲天堂av女优| 亚洲片国产一区一级在线观看| 日本久久久a级免费| 亚洲视频在线看| 欧美性理论片在线观看片免费| 中文字幕自拍vr一区二区三区| 亚洲视频电影图片偷拍一区| 国产精国产精品| 日韩国产欧美精品在线| 激情亚洲一区二区三区四区| 欧美性猛交xxxx久久久| 欧美一二三视频| 日本亚洲欧洲色α| 中文字幕亚洲精品| 久久精品国产一区二区电影| 亚洲少妇中文在线| 中文字幕在线看视频国产欧美| 色婷婷av一区二区三区久久| 97色在线观看免费视频| 久久色精品视频| 国产一区视频在线| 欧美www视频在线观看| 91久久精品日日躁夜夜躁国产| 欧美午夜www高清视频| 国产成人精品久久| 久久久999精品免费| 精品福利樱桃av导航| 久久精品国产免费观看| 日韩欧美国产一区二区| 日韩av日韩在线观看| 亚洲香蕉在线观看| 国产极品jizzhd欧美| 亚洲国产毛片完整版| 亚洲а∨天堂久久精品9966| 欧美精品电影免费在线观看| 91久久国产综合久久91精品网站| 一个色综合导航| 欧美亚洲在线视频| 亚洲成色777777女色窝| 亚洲欧美中文另类| 久久国产精品亚洲| 欧美精品做受xxx性少妇| 国产精品人成电影在线观看| 国产亚洲欧美一区| 久久久av免费| 亚洲精品一区av在线播放| 一区二区三区视频免费在线观看| 久久91亚洲精品中文字幕奶水| 欧美国产精品va在线观看| 欧美性资源免费| 永久免费看mv网站入口亚洲| 草民午夜欧美限制a级福利片| 欧美成人高清视频| 日本国产一区二区三区| 欧美另类高清videos| 亚洲成人教育av| 一区二区三区视频免费在线观看| 亚洲男女自偷自拍图片另类| 欧美xxxx做受欧美.88| 亚洲国产欧美久久| 91免费看片网站| 亚洲精品免费在线视频| 亚洲free嫩bbb| 国产成一区二区| 亚洲美女又黄又爽在线观看| 国产91精品青草社区| 国产精品久久久久久久av大片| 亚洲国内精品视频| 91国产在线精品| 久久艹在线视频| 欧美日韩中文字幕在线| 亚洲精品视频在线播放| 日韩电影中文字幕一区| 精品久久久久久电影| 97免费中文视频在线观看| 亚洲iv一区二区三区| 日韩电视剧在线观看免费网站| 欧美性在线观看| 国产日韩av在线| 91精品国产高清久久久久久91| 国产精品夫妻激情| 亚洲男人av在线| 欧美成aaa人片在线观看蜜臀| 亚洲福利视频网| 国产精品久久久久久av下载红粉| 日韩成人中文字幕在线观看| 国产精品视频大全| 91日韩在线视频| 69久久夜色精品国产69乱青草| 久久精品99久久香蕉国产色戒| 亚洲91精品在线观看| 91老司机在线| 日韩av手机在线看| 欧美激情2020午夜免费观看| 中文字幕精品av| 日韩av123| 亚洲欧洲一区二区三区在线观看| 久久不射电影网| 色噜噜狠狠色综合网图区| 成人信息集中地欧美| 日韩在线精品视频| 国产精品午夜一区二区欲梦| 国产日韩在线看| 亚洲福利视频久久| 三级精品视频久久久久| 91午夜理伦私人影院| 在线精品国产欧美| 欧美人成在线视频| 国产精彩精品视频| 一本色道久久88综合日韩精品| xvideos成人免费中文版| 琪琪第一精品导航| 亚洲一区美女视频在线观看免费| 久久亚洲精品成人| 国产精品久久久精品| 亚洲天堂成人在线| 亚洲精品在线看| 亚洲欧美日韩一区在线| 中文字幕日本欧美| 欧美日韩一区二区三区在线免费观看| 日本成熟性欧美|