高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘

當(dāng)前位置: 首頁 >滾動 > 正文

每日視訊:每個JavaScript程序員都應(yīng)該知道的十個面試問題

2023-06-27 18:24:20 來源:今日頭條

刷題是程序員面試準(zhǔn)備中至關(guān)重要的一件事,它直接決定你能否面試成功,或者在薪酬談判的時候是否具備主動優(yōu)勢。

JavaScript 很特殊,它幾乎在每個大型應(yīng)用程序中都扮演著至關(guān)重要的角色。如果你是一名JavaScript程序員,以下是一些可以幫助您探索真正重要內(nèi)容的問題。

對 JavaScript 應(yīng)用程序開發(fā)人員很重要的編程范式有哪些?

JavaScript 是一種多范式語言,支持命令式、過程式編程以及OOP(面向?qū)ο缶幊蹋┖秃瘮?shù)式編程。JavaScript 支持具有原型繼承的OOP 。


(資料圖)

什么是函數(shù)式編程?

函數(shù)式編程通過組合數(shù)學(xué)函數(shù)來生成程序,并避免共享狀態(tài)和可變數(shù)據(jù)。Lisp(于 1958 年指定)是最早支持函數(shù)式編程的語言之一,并且深受 lambda 演算的啟發(fā)。Lisp 和許多 Lisp 家族語言今天仍然被廣泛使用。

函數(shù)式編程是一種基于函數(shù)的編程范式,其中函數(shù)被視為一等公民。函數(shù)可以作為參數(shù)傳遞給其他函數(shù),也可以作為返回值返回。函數(shù)式編程鼓勵使用不可變數(shù)據(jù)和無副作用的函數(shù)。這意味著函數(shù)只依賴于它的輸入,并且不會更改任何外部狀態(tài)。在JavaScript中,函數(shù)式編程可以使用高階函數(shù)、閉包和遞歸等概念來實(shí)現(xiàn)。

經(jīng)典繼承和原型繼承有什么區(qū)別?

類繼承:實(shí)例繼承自類(如藍(lán)圖——類的描述),并創(chuàng)建子類關(guān)系:層次類分類法。實(shí)例通常通過帶有“new”關(guān)鍵字的構(gòu)造函數(shù)實(shí)例化。類繼承可能會也可能不會使用ES6 中的class關(guān)鍵字。

原型繼承:實(shí)例直接從其他對象繼承。實(shí)例通常通過工廠函數(shù)或Object.create() 實(shí)例化。實(shí)例可以由許多不同的對象組成,允許簡單的選擇性繼承。

在 JavaScript 中,原型繼承比類繼承更簡單、更靈活。

函數(shù)式編程與面向?qū)ο缶幊痰膬?yōu)缺點(diǎn)是什么?

OOP優(yōu)點(diǎn):容易理解對象的基本概念,容易理解方法調(diào)用的含義。OOP 傾向于使用命令式風(fēng)格而不是聲明式風(fēng)格,它讀起來就像一組直接的指令供計(jì)算機(jī)遵循。

OOP 缺點(diǎn): OOP 通常依賴于共享狀態(tài)。對象和行為通常在同一個實(shí)體上捆綁在一起,可以由任意數(shù)量的具有不確定順序的函數(shù)隨機(jī)訪問,這可能導(dǎo)致不良行為,例如競爭條件。

FP 的優(yōu)點(diǎn):使用函數(shù)范式,程序員可以避免任何共享狀態(tài)或副作用,從而消除多個函數(shù)競爭相同資源而導(dǎo)致的錯誤。與 OOP 相比,借助無點(diǎn)風(fēng)格(又名默認(rèn)編程)等功能,功能往往會被徹底簡化并輕松重組為更普遍可重用的代碼。

FP 也傾向于支持聲明式和指稱式風(fēng)格,這些風(fēng)格不會詳細(xì)說明操作的分步說明,而是專注于做什么,讓底層函數(shù)負(fù)責(zé)如何操作。這為重構(gòu)和性能優(yōu)化留下了巨大的空間,甚至允許您用更高效的算法替換整個算法,而只需很少的代碼更改。(例如,memoize 或使用惰性求值代替急切求值。)

使用純函數(shù)的計(jì)算也很容易跨多個處理器或跨分布式計(jì)算集群進(jìn)行擴(kuò)展,而不必?fù)?dān)心線程資源沖突、競爭條件等……

FP 缺點(diǎn):過度利用 FP 特性(例如無點(diǎn)樣式和大型組合)可能會降低可讀性,因?yàn)樯傻拇a通常更抽象地指定、更簡潔且更不具體。

與函數(shù)式編程相比,更多人熟悉OO和命令式編程,因此即使是函數(shù)式編程中的常見習(xí)語也會讓新團(tuán)隊(duì)成員感到困惑。

FP 的學(xué)習(xí)曲線比 OOP 陡峭得多,因?yàn)?OOP 的廣泛流行使得 OOP 的語言和學(xué)習(xí)材料變得更具會話性,而 FP 的語言往往更加學(xué)術(shù)和正式。FP 概念經(jīng)常寫成關(guān)于使用 lambda 演算、代數(shù)和范疇論中的習(xí)語和符號,所有這些都需要在這些領(lǐng)域有先驗(yàn)知識基礎(chǔ)才能理解。

什么時候經(jīng)典繼承是合適的選擇?

答案是從不,或者幾乎從不。當(dāng)然永遠(yuǎn)不會超過一個級別。多級類層次結(jié)構(gòu)是一種反模式。

什么時候原型繼承是合適的選擇?

原型繼承的類型不止一種:

委托(即原型鏈)。串聯(lián)(即 mixins,Object.assign())。函數(shù)式(不要與函數(shù)式編程混淆。用于為私有狀態(tài)/封裝創(chuàng)建閉包的函數(shù))。

每種類型的原型繼承都有自己的一組用例,但它們在啟用組合方面同樣有用,組合創(chuàng)建了has-a或uses-a或can-do關(guān)系,而不是 is -a關(guān)系使用類繼承創(chuàng)建。

“對象組合優(yōu)先于類繼承”是什么意思?

這意味著代碼重用應(yīng)該通過將更小的功能單元組裝到新對象中來實(shí)現(xiàn),而不是從類繼承和創(chuàng)建對象分類法。

換句話說,使用can-do、has-a或uses-a關(guān)系,而不是is-a關(guān)系。

什么是雙向數(shù)據(jù)綁定和單向數(shù)據(jù)流,它們有何不同?

雙向數(shù)據(jù)綁定意味著 UI 字段動態(tài)綁定到模型數(shù)據(jù),這樣當(dāng) UI 字段更改時,模型數(shù)據(jù)也隨之更改,反之亦然。

數(shù)據(jù)流的一種方式意味著模型是唯一的事實(shí)來源。UI 中的更改會觸發(fā)消息,這些消息會向模型發(fā)出用戶意圖信號(或 React 中的“存儲”)。只有模型有權(quán)更改應(yīng)用程序的狀態(tài)。效果是數(shù)據(jù)總是單向流動,這樣更容易理解。

數(shù)據(jù)流的一種方式是確定性的,而雙向綁定會導(dǎo)致難以理解和理解的副作用。

單體架構(gòu)與微服務(wù)架構(gòu)的優(yōu)缺點(diǎn)是什么?

單體架構(gòu)意味著您的應(yīng)用程序被編寫為一個內(nèi)聚的代碼單元,其組件旨在協(xié)同工作,共享相同的內(nèi)存空間和資源。

微服務(wù)架構(gòu)意味著您的應(yīng)用程序由許多較小的、獨(dú)立的應(yīng)用程序組成,這些應(yīng)用程序能夠在自己的內(nèi)存空間中運(yùn)行并在可能的許多獨(dú)立機(jī)器上相互獨(dú)立地?cái)U(kuò)展。

整體式優(yōu)點(diǎn):整體式架構(gòu)的主要優(yōu)點(diǎn)是大多數(shù)應(yīng)用程序通常具有大量橫切關(guān)注點(diǎn),例如日志記錄、速率限制和安全功能(例如審計(jì)跟蹤和 DOS 保護(hù))。

當(dāng)一切都通過同一個應(yīng)用程序運(yùn)行時,很容易將組件連接到那些橫切關(guān)注點(diǎn)。

還可能有性能優(yōu)勢,因?yàn)楣蚕韮?nèi)存訪問比進(jìn)程間通信 (IPC) 更快。

整體式缺點(diǎn):隨著應(yīng)用程序的發(fā)展,整體式應(yīng)用程序服務(wù)往往會緊密耦合和糾纏在一起,因此很難為獨(dú)立擴(kuò)展或代碼可維護(hù)性等目的隔離服務(wù)。

單體架構(gòu)也更難理解,因?yàn)榭赡艽嬖谝蕾囮P(guān)系、副作用和魔法,當(dāng)您查看特定服務(wù)或控制器時,這些并不明顯。

微服務(wù)優(yōu)點(diǎn):微服務(wù)架構(gòu)通常組織得更好,因?yàn)槊總€微服務(wù)都有一個非常具體的工作,并且不關(guān)心其他組件的工作。分離的服務(wù)也更容易重組和重新配置以服務(wù)于不同應(yīng)用程序的目的(例如,同時服務(wù)于 Web 客戶端和公共 API)。

它們還可以具有性能優(yōu)勢,具體取決于它們的組織方式,因?yàn)榭梢愿綦x熱門服務(wù)并獨(dú)立于應(yīng)用程序的其余部分?jǐn)U展它們。

微服務(wù)缺點(diǎn):在構(gòu)建新的微服務(wù)架構(gòu)時,您可能會發(fā)現(xiàn)許多在設(shè)計(jì)時沒有預(yù)料到的橫切關(guān)注點(diǎn)。一個單一的應(yīng)用程序可以建立共享的魔法助手或中間件來處理這樣的橫切問題而不需要太多努力。

在微服務(wù)架構(gòu)中,您需要為每個橫切關(guān)注點(diǎn)承擔(dān)單獨(dú)模塊的開銷,或者將橫切關(guān)注點(diǎn)封裝在所有流量都經(jīng)過的另一個服務(wù)層中。

最終,即使是單體架構(gòu)也傾向于通過外部服務(wù)層路由流量以實(shí)現(xiàn)橫切關(guān)注點(diǎn),但使用單體架構(gòu),可以延遲這項(xiàng)工作的成本,直到項(xiàng)目更加成熟。

微服務(wù)經(jīng)常部署在自己的虛擬機(jī)或容器上,導(dǎo)致 VM 爭論工作激增。這些任務(wù)經(jīng)常通過集裝箱車隊(duì)管理工具實(shí)現(xiàn)自動化。

什么是異步編程,為什么它在 JavaScript 中很重要?

同步編程意味著,除了條件和函數(shù)調(diào)用,代碼從上到下按順序執(zhí)行,阻塞長時間運(yùn)行的任務(wù),如網(wǎng)絡(luò)請求和磁盤 I/O。

異步編程意味著引擎在事件循環(huán)中運(yùn)行。當(dāng)需要阻塞操作時,請求被啟動,代碼繼續(xù)運(yùn)行而不阻塞結(jié)果。當(dāng)響應(yīng)就緒時,將觸發(fā)一個中斷,這會導(dǎo)致運(yùn)行一個事件處理程序,控制流將在此處繼續(xù)。這樣,單個程序線程可以處理許多并發(fā)操作。

用戶界面本質(zhì)上是異步的,大部分時間都在等待用戶輸入來中斷事件循環(huán)并觸發(fā)事件處理程序。

默認(rèn)情況下,Node 是異步的,這意味著服務(wù)器以大致相同的方式工作,循環(huán)等待網(wǎng)絡(luò)請求,并在處理第一個請求時接受更多傳入請求。

這在 JavaScript 中很重要,因?yàn)樗浅_m合用戶界面代碼,并且對服務(wù)器性能非常有益。

標(biāo)簽:

返回頂部
高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘
  • <cite id="ecweg"><pre id="ecweg"></pre></cite>
    <rt id="ecweg"><acronym id="ecweg"></acronym></rt>
  • <rt id="ecweg"></rt>
    女女同性女同一区二区三区按摩| 狠狠躁狠狠躁视频专区| 亚洲欧美aaa| 四季av一区二区| 六月婷婷在线视频| 蜜桃传媒一区二区三区| japanese在线播放| 欧美a级免费视频| 久久精品国产sm调教网站演员| 美国av在线播放| 91免费版看片| 国产亚洲黄色片| 三级视频中文字幕| 精品国产一区二区三区无码| 久久久久人妻精品一区三寸| 污版视频在线观看| 天天干天天操天天做| 午夜视频在线网站| 黄色免费视频大全| 手机福利在线视频| 欧美三级一级片| 久久久久免费精品| 日韩xxxx视频| av观看免费在线| 中文字幕22页| 国产xxxx振车| 天堂在线资源视频| 国产 国语对白 露脸| 免费国产黄色网址| 国产wwwxx| 毛片在线视频观看| 成年人免费大片| 日韩中文字幕亚洲精品欧美| 亚洲涩涩在线观看| www.成年人视频| 亚洲国产高清av| 国产午夜福利在线播放| 在线a免费观看| 无码人妻精品一区二区三区66| 男女超爽视频免费播放| 国产精品视频黄色| 男女啪啪免费观看| 五月婷婷丁香综合网| 亚洲熟妇无码一区二区三区导航| 日韩一区二区三区久久| 无码播放一区二区三区| 成人高清在线观看视频| 欧美性猛交xxx乱久交| 亚洲不卡中文字幕无码| www.激情网| 91欧美一区二区三区| 激情婷婷综合网| 91丨porny丨探花| av不卡在线免费观看| 一区二区三区视频在线观看免费| 大陆极品少妇内射aaaaa| 女女百合国产免费网站| 一级黄色片在线免费观看| 亚洲一级片av| 久久这里只精品| 日韩精品视频久久| 福利视频免费在线观看| 久久视频免费在线| 久久最新免费视频| 欧洲美女亚洲激情| 久国产精品视频| 最新av免费在线观看| 国产欧美一区二| 日本特黄在线观看| 黄色片免费在线观看视频| av影院在线播放| 国产高清www| 国产精品沙发午睡系列| 北条麻妃在线视频| 超碰在线公开97| 日本特黄在线观看| 真人抽搐一进一出视频| 国产精品50p| 成 人 黄 色 小说网站 s色| 午夜视频在线网站| 天天做天天躁天天躁| 精品欧美一区免费观看α√| 黄色免费观看视频网站| 欧美xxxxx在线视频| 亚洲最大天堂网| 91 视频免费观看| av 日韩 人妻 黑人 综合 无码| 天堂8在线天堂资源bt| 日韩在线一级片| 国产成人在线综合| 免费cad大片在线观看| av电影一区二区三区| 国产美女网站在线观看| 一区二区三区 欧美| 2022中文字幕| 久久精品香蕉视频| 91精品视频国产| 国产精品又粗又长| 日本高清久久久| 免费观看美女裸体网站| 图片区乱熟图片区亚洲| 免费观看精品视频| 400部精品国偷自产在线观看| 国产亚洲精品网站| 成人免费看片视频在线观看| 狠狠97人人婷婷五月| aaaaaaaa毛片| 国产一二三四在线视频| 成人午夜免费在线| 三级在线免费观看| 簧片在线免费看| av免费中文字幕| 六月婷婷激情综合| 香蕉视频xxxx| 亚洲小视频网站| 激情视频综合网| 日韩小视频在线播放| 国产 国语对白 露脸| 午夜影院免费观看视频| 在线观看免费污视频| 蜜臀av午夜一区二区三区| 国产日本在线播放| 久久免费一级片| 国产免费色视频| 天天综合成人网| 日韩av片专区| 一级做a免费视频| 999精品视频在线| 成人性生生活性生交12| 国产精品无码av无码| 无码人妻丰满熟妇区毛片| 久久精品国产精品亚洲色婷婷| 丰满的少妇愉情hd高清果冻传媒 | 天天夜碰日日摸日日澡性色av| 国产av熟女一区二区三区| 99久久免费观看| av日韩一区二区三区| 人妻无码久久一区二区三区免费| 黄色三级中文字幕| 欧美一级视频在线播放| av黄色在线网站| 一本久道综合色婷婷五月| 蜜臀av免费观看| 欧美aaa在线观看| 欧美一级免费在线观看| 大陆极品少妇内射aaaaaa| av在线免费观看国产| 国产中文字幕在线免费观看| 激情综合在线观看| 午夜在线观看av| 国产福利精品一区二区三区| 18视频在线观看娇喘| 97国产精东麻豆人妻电影| 91看片在线免费观看| 自拍偷拍视频在线| 97成人在线免费视频| 麻豆av免费在线| 一级日本黄色片| 成 年 人 黄 色 大 片大 全| 日韩手机在线观看视频| 经典三级在线视频| 欧美极品欧美精品欧美| www.超碰97.com| 欧美一级视频免费看| 手机av在线网站| 欧美污视频网站| 亚洲天堂第一区| 尤蜜粉嫩av国产一区二区三区| 亚洲天堂一区二区在线观看| 免费av网址在线| 男同互操gay射视频在线看| 女人和拘做爰正片视频| 波多野结衣免费观看| 黄色高清无遮挡| 又大又硬又爽免费视频| 91视频这里只有精品| 一本久道综合色婷婷五月| 国产在线视频综合| 日本黄色的视频| 国产三级日本三级在线播放| 岛国大片在线播放| 色哺乳xxxxhd奶水米仓惠香| 在线免费视频一区| 黄色免费福利视频| 亚洲污视频在线观看| 欧美成人三级在线视频| 成年人黄色在线观看| 在线播放黄色av| 伊人影院综合在线| 91人人澡人人爽人人精品| 欧美精品色婷婷五月综合| 欧美一级在线看| 亚洲自偷自拍熟女另类| 婷婷无套内射影院| 国产乱子伦精品视频| 日本一区二区免费高清视频| 亚洲精品中文字幕乱码无线| mm131亚洲精品| 在线免费黄色网| 午夜视频在线观|