前端面試題(二)

1牙勘、函數(shù)防抖和函數(shù)節(jié)流

? ? ? ? 概念

? ??????????函數(shù)防抖(debounce):函數(shù)防抖隅津,就是指觸發(fā)事件后在 n 秒內(nèi)函數(shù)只能執(zhí)行一次散劫,如果在 n 秒內(nèi)又觸發(fā)了事件韧涨,則會重新計算函數(shù)執(zhí)行時間牍戚。簡單的說,當一個動作連續(xù)觸發(fā)虑粥,則只執(zhí)行最后一次如孝。

? ??????????函數(shù)節(jié)流(throttle):限制一個函數(shù)在一定時間內(nèi)只能執(zhí)行一次。

? ??????常見應用場景

? ? ? ? ?函數(shù)防抖的應用場景:

????????????連續(xù)的事件娩贷,只需觸發(fā)一次回調(diào)的場景有:

? ? ? ? ? ? ? ? 搜索框搜索輸入第晰。只需用戶最后一次輸入完,再發(fā)送請求彬祖, 手機號茁瘦、郵箱驗證輸入檢測, 窗口大小Resize储笑。只需窗口調(diào)整完成后甜熔,計算窗口大小。防止重復渲染突倍。

? ? ? ? ?函數(shù)節(jié)流的應用場景

? ? ? ? ? ? ?間隔一段時間執(zhí)行一次回調(diào)的場景有: 滾動加載腔稀,加載更多或滾到底部監(jiān)聽,谷歌搜索框赘方,搜索聯(lián)想功能烧颖,高頻點擊提交,表單重復提交

? ? ? ? ?實現(xiàn)原理

? ??????????????函數(shù)防抖的簡單實現(xiàn):

? ? ? ? ? ? ? 函數(shù)節(jié)流(throttle)

函數(shù)節(jié)流的目的窄陡,是為了限制函數(shù)一段時間內(nèi)只能執(zhí)行一次炕淮。因此,通過使用定時任務跳夭,延時方法執(zhí)行涂圆。在延時的時間內(nèi),方法若被觸發(fā)币叹,則直接退出方法润歉。從而,實現(xiàn)函數(shù)一段時間內(nèi)只執(zhí)行一次颈抚。

? ??????異同比較

? ??????????????相同點:

????????????????????都可以通過使用setTimeout實現(xiàn)踩衩。

????????????????????目的都是,降低回調(diào)執(zhí)行頻率。節(jié)省計算資源驱富。

? ? ? ? ? ? ? ?不同點:

? ??????????????????函數(shù)防抖锚赤,在一段連續(xù)操作結(jié)束后,處理回調(diào)褐鸥,利用 clearTimeout 和setTimeout 實現(xiàn)线脚。函數(shù)節(jié)流,在一段連續(xù)操作中叫榕,每一段時間只執(zhí)行一次浑侥,頻率較高的事件中使用來提高性能。

? ??????????????????函數(shù)防抖關(guān)注一定時間連續(xù)觸發(fā)晰绎,只在最后執(zhí)行一次寓落,而函數(shù)節(jié)流側(cè)重于一段時間內(nèi)只執(zhí)行一次。

2寒匙、eval是做什么的零如。

? ? 概念:eval() 把字符串解析為js代碼并返回。

? ??如果參數(shù)是一個表達式锄弱,eval() 函數(shù)將執(zhí)行表達式考蕾。如果參數(shù)是Javascript語句,eval()將執(zhí)行 Javascript 語句会宪。

? ? 實例

? ??<script>

????????eval("x=10;y=20;document.write(x*y)");

????????document.write("<br>" + eval("2+2"));

????????document.write("<br>" + eval(x+17));

????</script>

3肖卧、哪些操作造成內(nèi)存泄漏

? ? 內(nèi)存泄漏:就是沒有使用或已經(jīng)使用的完的變量,沒有及時的回收掸鹅。

? ? Javascript常見的內(nèi)存泄漏:

? ? 一塞帐、意外的全局變量

? ? ? ? (1)初始化未經(jīng)聲明的變量,總是會創(chuàng)建一個全局變量

? ??????????function f1(){

? ? ? ? ? ? ????//初始化這個變量沒有聲明巍沙,成為全局變量葵姥,不會自動被回收

????????????????bar ="this is a global variable"http://

? ? ? ? ? ? ?????window.bar = "this is a global variable"

? ????????}

? ? ? ? (2)由this創(chuàng)建的全局變量

? ??????????function f1(){

? ? ? ? ? ???? this.bar ="this is a global variable"? ? ? ??

????????????}

? ? ???????? f1()

? ? ? ? 注意:有些全局變量產(chǎn)生的垃圾,不可回收句携,尤其當全局變量用于臨時存儲和處理大量信息的時候榔幸,確保用完之后將他設置為null

? ? 二、計時器或回調(diào)函數(shù)

? ? ? ? 注意:一旦定時器不需要矮嫉,需要移除削咆。

? ? 三、dom清空或刪除時事件未清除導致內(nèi)存泄漏

? ? 四蠢笋、閉包

? ??????匿名函數(shù)可以訪問父級作用域中的變量拨齐。

? ? 五、子元素存在引起的內(nèi)存泄漏昨寞。

4瞻惋、進程與線程的區(qū)別

? ??1.進程是運行中的程序厦滤,線程是進程的內(nèi)部的一個執(zhí)行序列

????2. 進程是資源分配的單元,線程是執(zhí)行行單元

????3. 進程間切換代價大熟史,線程間切換代價小

? ? 4. 進程擁有資源多馁害,線程擁有資源少

????5. 多個線程共享進程的資源

????這種題目,專業(yè)術(shù)語不好理解蹂匹,采用形象一點的比喻更好,比如(取自知乎):

????開個QQ凹蜈,開了一個進程限寞;開了迅雷,開了一個進程仰坦。

????在QQ的這個進程里履植,傳輸文字開一個線程、傳輸語音開了一個線程悄晃、彈出對話框又開了一個線程玫霎。 所以運行某個軟件,相當于開了一個進程妈橄。在這個軟件運行的過程里(在這個進程里)庶近,多個工作支撐的完成QQ的運行,那么這“多個工作”分別有一個線程眷蚓。所以一個進程管著多個線程鼻种。

????通俗的講:“進程是爹媽,管著眾多的線程兒子”…

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沙热,一起剝皮案震驚了整個濱河市叉钥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌篙贸,老刑警劉巖投队,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異爵川,居然都是意外死亡敷鸦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門雁芙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轧膘,“玉大人,你說我怎么就攤上這事兔甘』寻” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵洞焙,是天一觀的道長蟆淀。 經(jīng)常有香客問我拯啦,道長,這世上最難降的妖魔是什么熔任? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任褒链,我火速辦了婚禮,結(jié)果婚禮上疑苔,老公的妹妹穿的比我還像新娘甫匹。我一直安慰自己,他們只是感情好惦费,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布兵迅。 她就那樣靜靜地躺著,像睡著了一般薪贫。 火紅的嫁衣襯著肌膚如雪恍箭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天瞧省,我揣著相機與錄音扯夭,去河邊找鬼。 笑死鞍匾,一個胖子當著我的面吹牛交洗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播候学,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼藕筋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梳码?” 一聲冷哼從身側(cè)響起隐圾,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掰茶,沒想到半個月后暇藏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡濒蒋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年盐碱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沪伙。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓮顽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出围橡,到底是詐尸還是另有隱情暖混,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布翁授,位于F島的核電站拣播,受9級特大地震影響晾咪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贮配,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一谍倦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泪勒,春花似錦昼蛀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辽剧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間税产,已是汗流浹背怕轿。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辟拷,地道東北人撞羽。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像衫冻,于是被迫代替她去往敵國和親诀紊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 1.什么是同源策略隅俘?你都知道哪些解決跨域的方法邻奠? 同源策略(Same origin policy)是一種約定,它是...
    抱以惡意閱讀 209評論 0 0
  • 1. webpack的看法 webpack是一個打包工具为居,可以使用webpack管理你的模塊依賴可以分析各模塊之間...
    月半女那閱讀 2,407評論 0 7
  • 站在月亮上Da ... 什么是同源策略碌宴?你都知道哪些解決跨域的方法? 同源策略(Same origin polic...
    站在月亮上Da閱讀 135評論 0 0
  • 1蒙畴、float的作用贰镣? 定義元素在哪個方向浮動(left,right,none,inherit)。浮動元素會生成一...
    嘻哈章魚小丸子閱讀 404評論 0 4
  • MVVM MVVM 由以下三個內(nèi)容組成 View:界面 Model:數(shù)據(jù)模型 ViewModel:作為橋梁負責溝通...
    C楚輝H閱讀 666評論 0 0