web前端面試題@十五(eval是什么?哪些操作會(huì)造成內(nèi)存泄漏疫赎?)

一盛撑、eval是做什么的?

????????在非嚴(yán)格模式捧搞,可以將json字符串轉(zhuǎn)換為對(duì)象的形式撵彻。也可將字符串參數(shù)轉(zhuǎn)化為腳本代碼執(zhí)行,但只適合在非嚴(yán)格模式下实牡。它的功能是將對(duì)應(yīng)的字符串解析成js并執(zhí)行,應(yīng)該避免使用js轴合,因?yàn)榉浅O男阅埽?次创坞,一次解析成js,一次執(zhí)行)受葛,簡單來說將字符串參數(shù)解析成js代碼并執(zhí)行题涨,并返回執(zhí)行結(jié)果。但應(yīng)避免使用总滩,不安全纲堵,也耗性能。

二闰渔、哪些操作會(huì)造成內(nèi)存泄漏席函?

先了解什么是內(nèi)存泄漏?

????????內(nèi)存泄漏:由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存冈涧。內(nèi)存泄漏并非指內(nèi)存在物理上的消失茂附,而是應(yīng)用程序分配某段內(nèi)存后正蛙,由于設(shè)計(jì)錯(cuò)誤,導(dǎo)致在釋放該段內(nèi)存之前就失去了對(duì)該段內(nèi)存的控制营曼,從而造成了內(nèi)存的浪費(fèi)乒验。

1、意外的全局變量

????????js對(duì)未聲明變量會(huì)在全局最高對(duì)象上創(chuàng)建它的引用蒂阱,(是以屬性存在的锻全,而不是變量),在瀏覽器上就是window對(duì)象录煤,如果未聲明的變量緩存大量的數(shù)據(jù)鳄厌,它可能只有在頁面被刷新或者被關(guān)閉的時(shí)候才會(huì)釋放內(nèi)存,這樣就造成了內(nèi)存意外泄漏辐赞。

例如:


2部翘、console.log

作為前端平時(shí)使用console.log在控制臺(tái)打出相對(duì)應(yīng)的信息可以說是非常常見。但如果沒有去掉console.log可能會(huì)存在內(nèi)存泄漏响委。因?yàn)樵诖a運(yùn)行之后需要在開發(fā)工具能查看對(duì)象信息新思,所以傳遞給console.log的對(duì)象是不能被垃圾回收。

3赘风、閉包

首先閉包是一個(gè)函數(shù)A返回一個(gè)內(nèi)聯(lián)的函數(shù)B,及時(shí)A函數(shù)執(zhí)行完函數(shù)B也可以訪問函數(shù)A里面的變量夹囚,這就是一個(gè)簡單的閉包。本質(zhì)上閉包是將函數(shù)內(nèi)部和外部連接起來的一座橋梁邀窃。

閉包

在my()內(nèi)部創(chuàng)建的sendName()函數(shù)是不會(huì)被回收的荸哟,因?yàn)樗蝗肿兞縯est引用,處于隨時(shí)被調(diào)用的狀態(tài)瞬捕。如果向釋放內(nèi)存可以設(shè)置test=null;由于閉包會(huì)攜帶包含它的函數(shù)的作用域鞍历,因此會(huì)比其他函數(shù)占用更多的內(nèi)存。過度使用閉包可能會(huì)導(dǎo)致內(nèi)存占用過多肪虎。

4劣砍、DOM泄漏

基礎(chǔ)的DOM泄漏,當(dāng)原有的DOM被移除時(shí)扇救,子結(jié)點(diǎn)引用沒有被移除則無法回收刑枝。

5、被遺忘的timers

js中常用的定時(shí)器setInterval()迅腔、setTimeout().他們都是規(guī)定延遲一定的時(shí)間執(zhí)行某個(gè)代碼装畅,而其中setInterval()和鏈?zhǔn)絪etTimeout()在使用完之后如果沒有手動(dòng)關(guān)閉,會(huì)一直存在執(zhí)行占用內(nèi)存沧烈,所以在不用的時(shí)候我們可以通過clearInterval()掠兄、clearTimeout() 來關(guān)閉其對(duì)應(yīng)的定時(shí)器,釋放內(nèi)存。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末徽千,一起剝皮案震驚了整個(gè)濱河市苫费,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌双抽,老刑警劉巖百框,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異牍汹,居然都是意外死亡铐维,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門慎菲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫁蛇,“玉大人,你說我怎么就攤上這事露该〔桥铮” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵解幼,是天一觀的道長抑党。 經(jīng)常有香客問我,道長撵摆,這世上最難降的妖魔是什么底靠? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮特铝,結(jié)果婚禮上暑中,老公的妹妹穿的比我還像新娘。我一直安慰自己鲫剿,他們只是感情好鳄逾,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灵莲,像睡著了一般严衬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笆呆,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音粱挡,去河邊找鬼赠幕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛询筏,可吹牛的內(nèi)容都是我干的榕堰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼逆屡!你這毒婦竟也來了圾旨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤魏蔗,失蹤者是張志新(化名)和其女友劉穎砍的,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莺治,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡廓鞠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谣旁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片床佳。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖榄审,靈堂內(nèi)的尸體忽然破棺而出砌们,到底是詐尸還是另有隱情,我是刑警寧澤搁进,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布浪感,位于F島的核電站,受9級(jí)特大地震影響拷获,放射性物質(zhì)發(fā)生泄漏篮撑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一匆瓜、第九天 我趴在偏房一處隱蔽的房頂上張望赢笨。 院中可真熱鬧,春花似錦驮吱、人聲如沸茧妒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桐筏。三九已至,卻和暖如春拇砰,著一層夾襖步出監(jiān)牢的瞬間梅忌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工除破, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留牧氮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓瑰枫,卻偏偏與公主長得像踱葛,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345