小猿圈前端講師今天繼續給你總結js面試題,前面一篇文章咱們已經有一片js基礎部分面試題,今天小猿圈web講師爲你講解js前端應用設計問題,一定要好好看哦,爲了能贏在其他人前面。
JavaScript前端應用設計問題
1.解釋單向數據流和雙向數據綁定。
Angular1.x基於雙向數據綁定,而React,Vue,Elm等基於單向數據流架構。
2.單向數據流架構在哪些方面適合MVC?
MVC擁有大約50年的悠久歷史,並已演變爲MVP,MVVM和MV*。兩者之間的相互關係是什麼?如果MVC是架構模式,那麼單向數據流是什麼?這些競爭模式是否能解決同樣的問題?
3.客戶端MVC與服務器端或經典MVC有何不同?
提示:經典MVC是適用於桌面應用程序的SmalltalkMVC。在Web應用中,至少有兩個不同的數據MVC週期。
4.使函數式編程與面向對象或命令式編程不同的關鍵因素是什麼?
提示:Currying(柯里化),point-free函數,partial函數應用,高階函數,純函數,獨立副作用,record類型(聯合,代數數據類型)等。
5.在JavaScript和前端的上下文中,函數式編程與響應式編程有什麼關係?
提示:沒有正確答案。但粗略地說,函數式編程是關於小型編碼,編寫純函數和響應式編程是大型編碼,即模塊之間的數據流,連接以FP風格編寫的組件。FRP–功能響應式編程(FunctionalReactiveProgramming)是另一個不同但相關的概念。
6.不可變數據結構(immutabledatastructures)解決了哪些問題?
不可變結構是否有任何性能影響?JS生態系統中哪些庫提供了不可變的數據結構?這些庫的優點和缺點是什麼?
提示:線程安全(我們真的需要在瀏覽器JavaScript中擔心嗎?),無副作用的函數,更好的狀態管理等。
7.大型應用程序是否應使用靜態類型?
1.如何比較TypeScript/Flow與Elm/ReasonML/PureScript等JS轉換語言?這些方法的優缺點是什麼?
2.選擇特定類型系統的主要標準應該是什麼?
3.什麼是類型推斷(typeinference)?
4.靜態類型語言和強類型語言有什麼區別?在這方面JavaScript的本質是什麼?
5.有你知道的弱類型但靜態類型的語言嗎?有你知道的動態類型但強類型的語言嗎?舉例一二。
提示:Structural與Nominal類型系統,類型穩健性,工具/生態系統支持,正確性超過方便。
8.JavaScript中有哪些傑出的模塊系統(modulesystems)?如何評價ES模塊系統。
列出在實現不同模塊系統之間互操作所涉及的一些複雜性問題(主要對ES模塊和CommonJS互操作感興趣)
9.HTTP/2將如何影響JavaScript應用程序打包?
列出HTTP/2與其上一個版本的基本區別。
10.FetchAPI相對於傳統的Ajax有哪些改進?
使用FetchAPI有那些缺點/難點嗎?
哪些是Ajax可以做的,而fetch不能做的?
11.討論與Promise相關的問題。
提示:及早求值(eagerevaluation),尷尬的取消機制,用then()方法僞裝map()和flatMap()等。
以上就是這次小猿圈HTML5講師給大家整理的2019年前端JavaScript面試題,大家做的怎麼樣呢,如果針對哪一部分感覺不足,可以去具體學習一下那部分內容,彌補自己的不足,做最充足的準備,小夥伴們加油!