前端面試題十七@楊志剛

什么是函數(shù)防抖和函數(shù)節(jié)流永票?有什么區(qū)別?

函數(shù)防抖驮俗,就是指觸發(fā)事件后在 n 秒內(nèi)函數(shù)只能執(zhí)行一次懂缕,如果在 n 秒內(nèi)又觸發(fā)了事件允跑,則會重新計算函數(shù)執(zhí)行時間王凑。

函數(shù)節(jié)流,就是限制一個函數(shù)在一定時間內(nèi)只能執(zhí)行一次聋丝。

什么是函數(shù)柯里化及有什么用索烹?

函數(shù)柯里化

就是給函數(shù)分步傳遞參數(shù),每次傳遞部分參數(shù)弱睦,并返回一個更具體的函數(shù)接收剩下的參數(shù)百姓,這中間可嵌套多層這樣的接收部分參數(shù)的函數(shù),直至返回最后結(jié)果况木。

函數(shù)柯里化有什么用垒拢?

通過函數(shù)柯里化旬迹,我們可以實現(xiàn)參數(shù)復(fù)用、提前返回和延遲執(zhí)行求类。通過函數(shù)柯里化奔垦,在不同的情況下傳遞不同的參數(shù)

談?wù)勀K化開發(fā)

什么是模塊化開發(fā)?

模塊就是完成單一的職責(zé)的功能函數(shù)或者代碼塊尸疆。

模塊化開發(fā)是指如何開發(fā)新的模塊和復(fù)用已有的模塊來實現(xiàn)應(yīng)用的功能椿猎。

為什么要模塊化開發(fā)?

可維護性

可測試性

按需加載

代碼復(fù)用

利于架構(gòu)

利于協(xié)作

對于我們前端來說寿弱,特別是解決了javascript中命名空間以及文件依賴的問題犯眠。

模塊化開發(fā)的規(guī)范

CommonJS

用于服務(wù)端模塊化編程,Node.js就采用此規(guī)范症革;

一個文件就是一個模塊筐咧,require方法用來加載模塊,該方法讀取一個文件并執(zhí)行地沮,最后返回文件內(nèi)部的module.exports對象嗜浮;

AMD

require.js(前端模塊化管理的工具庫)實現(xiàn)js文件的異步加載,避免網(wǎng)頁失去響應(yīng)摩疑;管理模塊之間的依賴性危融,便于代碼的編寫和維護;require.js是使用創(chuàng)建script元素雷袋,通過指定script元素的src屬性來實現(xiàn)加載模塊的吉殃;

依賴前置,盡早的執(zhí)行模依賴塊楷怒,執(zhí)行順序不一定蛋勺;

CMD

Sea.js 依賴就近,且在真正需要使用依賴模塊時才執(zhí)行該模塊鸠删,順序固定抱完;

AMD和CMD最大的區(qū)別是對依賴模塊的執(zhí)行時機處理不同,而不是加載的時機或者方式不同刃泡,二者皆為異步加載模塊巧娱;

AMD依賴前置,js可以方便知道依賴模塊是誰烘贴,立即加載禁添;而CMD就近依賴,需要使用把模塊變?yōu)樽址馕鲆槐椴胖酪蕾嚵四切┠K桨踪。

ES6

ES6使用的是基于文件的模塊老翘。所以必須一個文件一個模塊,不能將多個模塊合并到單個文件中去。

ES6模塊API是靜態(tài)的铺峭,一旦導(dǎo)入模塊后墓怀,無法再在程序運行過程中增添方法。

ES6模塊采用引用綁定(可以理解為指針)卫键。這點和CommonJS中的值綁定不同捺疼,如果你的模塊在運行過程中修改了導(dǎo)出的變量值,就會反映到使用模塊的代碼中去永罚。所以啤呼,不推薦在模塊中修改導(dǎo)出值,導(dǎo)出的變量應(yīng)該是靜態(tài)的呢袱。

ES6模塊采用的是單例模式官扣,每次對同一個模塊的導(dǎo)入其實都指向同一個實例。

另外羞福,ES6模塊好處很多惕蹄,但是并不支持按需加載的功能, 而按需加載又是Web性能優(yōu)化中重要的一個環(huán)節(jié)。好在我們可以借助Webpack來彌補這一缺陷

談?wù)勀銓ψ饔糜蜴湹睦斫?/h2>

什么是作用域治专?

作用域就是變量與函數(shù)的可訪問范圍卖陵。在JavaScript中,變量的作用域有全局作用域和局部作用域张峰,在ES6之后泪蔫,又添加了塊級作用域的概念,所以在JavaScript中有三種作用域喘批。對于javascript而言撩荣,我們定義在局部作用域或者塊級作用的變量,會存放在scope局部作用域?qū)ο笊先纳睿x在全局作用域的變量餐曹,會存放在window/global這個全局對象上。

當(dāng)我們在局部/塊級作用域中敌厘,調(diào)用一個外部的變量時台猴,就會產(chǎn)生作用域鏈。函數(shù)在哪里創(chuàng)建俱两,它就會從哪里開始向上查找變量饱狂;而不是函數(shù)在哪里調(diào)用。

什么是深拷貝锋华?什么是淺拷貝嗡官?如何實現(xiàn)一個深拷貝函數(shù)箭窜?

深拷貝和淺拷貝都是針對于引用類型(Object)而言毯焕,對于基本數(shù)據(jù)類型而言,賦值直接就是深拷貝。

淺拷貝有兩種定義纳猫,一種是直接賦值引用婆咸,另一種是只拷貝對象的第一層屬性,更深層次的引用還是相同的芜辕;

深拷貝就是將原有對象重新拷貝一份尚骄,不論是修改哪一部分的值,都不會對原有對象造成影響侵续【笳桑拷貝的永遠(yuǎn)是值,而不是引用状蜗。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末需五,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子轧坎,更是在濱河造成了極大的恐慌宏邮,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缸血,死亡現(xiàn)場離奇詭異蜜氨,居然都是意外死亡,警方通過查閱死者的電腦和手機捎泻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門飒炎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人笆豁,你說我怎么就攤上這事厌丑。” “怎么了渔呵?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵怒竿,是天一觀的道長。 經(jīng)常有香客問我扩氢,道長耕驰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任录豺,我火速辦了婚禮朦肘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘双饥。我一直安慰自己媒抠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布咏花。 她就那樣靜靜地躺著趴生,像睡著了一般阀趴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上苍匆,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天刘急,我揣著相機與錄音,去河邊找鬼浸踩。 笑死叔汁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的检碗。 我是一名探鬼主播据块,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼折剃!你這毒婦竟也來了瑰钮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤微驶,失蹤者是張志新(化名)和其女友劉穎浪谴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體因苹,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡苟耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了扶檐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凶杖。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖款筑,靈堂內(nèi)的尸體忽然破棺而出智蝠,到底是詐尸還是另有隱情,我是刑警寧澤奈梳,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布杈湾,位于F島的核電站,受9級特大地震影響攘须,放射性物質(zhì)發(fā)生泄漏漆撞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一于宙、第九天 我趴在偏房一處隱蔽的房頂上張望浮驳。 院中可真熱鬧,春花似錦捞魁、人聲如沸至会。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奉件。三九已至宵蛀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓶蚂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工宣吱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窃这,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓征候,卻偏偏與公主長得像杭攻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疤坝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

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

  • 什么是函數(shù)防抖和函數(shù)節(jié)流兆解?有什么區(qū)別? 概念 函數(shù)防抖 函數(shù)防抖跑揉,就是指觸發(fā)事件后在 n 秒內(nèi)函數(shù)只能執(zhí)行一次锅睛,如...
    郝晨光閱讀 1,742評論 0 13
  • from郝晨光 1,什么是函數(shù)防抖和函數(shù)節(jié)流历谍?有什么區(qū)別 防抖现拒,就是指觸發(fā)事件后在 n 秒內(nèi)函數(shù)只能執(zhí)行一次,如果...
    小程要謙虛閱讀 782評論 0 5
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,103評論 1 32
  • 十二望侈、LESS教程 Less教程Less 安裝Less 嵌套規(guī)則Less 操作Less 轉(zhuǎn)義Less 函數(shù) Les...
    茶茶點閱讀 318評論 0 3
  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持印蔬,譯者再次奉上一點點福利:阿里云產(chǎn)品券,享受所有官網(wǎng)優(yōu)惠脱衙,并抽取幸運大...
    HetfieldJoe閱讀 3,658評論 2 27