在JavaScript中,函數(shù)的功能十分強(qiáng)大。它們是第一類對(duì)象,也可以作為另一個(gè)對(duì)象的方法,還可以作為參數(shù)傳入另一個(gè)函數(shù),不僅如此,還能被一個(gè)函數(shù)返回!可以說(shuō),在JS中,函數(shù)無(wú)處不在,無(wú)所不能,堪比孫猴子呀!當(dāng)你運(yùn)用好函數(shù)時(shí),它能助你取西經(jīng),讓代碼變得優(yōu)雅簡(jiǎn)潔,運(yùn)用不好時(shí),那就遭殃了,要大鬧天宮咯~ 除了函數(shù)相關(guān)的基礎(chǔ)知識(shí)外,掌握一些高級(jí)函數(shù)并應(yīng)用起來(lái),不僅能讓JS代碼看起來(lái)更為精簡(jiǎn),還可以提升性能。以下是博主總結(jié)的一些常用的、重要的高級(jí)函數(shù),加上了一些個(gè)人見(jiàn)解,特此記錄下來(lái)。如果您是JS初學(xué)者,也不要被“高級(jí)”兩個(gè)字嚇到,因?yàn)槲闹写┎逯v解了一些原型、this等基礎(chǔ)知識(shí),相信并不難理解。如果您是JS大牛,也可以把本文用來(lái)查漏補(bǔ)缺。 1. 防抖瀏覽器的 resize、scroll、keypress、mousemove 等事件在觸發(fā)時(shí),會(huì)不斷地調(diào)用綁定在事件上的回調(diào)函數(shù),極大地浪費(fèi)資源,降低前端性能。為了優(yōu)化體驗(yàn),需要對(duì)這類事件進(jìn)行調(diào)用次數(shù)的限制。 作用是在短時(shí)間內(nèi)多次觸發(fā)同一個(gè)函數(shù),只執(zhí)行最后一次,或者只在開始時(shí)執(zhí)行。 以用戶拖拽改變窗口大小,觸發(fā) resize 事件為例,在這過(guò)程中窗口的大小一直在改變,所以如果我們?cè)?resize 事件中綁定函數(shù),這個(gè)函數(shù)將會(huì)一直觸發(fā),而這種情況大多數(shù)情況下是無(wú)意義的,還會(huì)造成資源的大量浪費(fèi)。 2. 節(jié)流節(jié)流是指在一段時(shí)間內(nèi)只允許函數(shù)執(zhí)行一次 應(yīng)用場(chǎng)景如: 輸入框的聯(lián)想、可以限定用戶在輸入時(shí),只在每?jī)擅腌婍憫?yīng)一次聯(lián)想(或是兩秒鐘發(fā)送一次搜索請(qǐng)求) 3. 數(shù)組扁平化4. 柯里化5. 對(duì)象拷貝 |
|
來(lái)自: 流水1314 > 《javascript》