前端常問面試題

1.什么是面向?qū)ο螅?/h2>

面向?qū)ο笫且环N編程思想,是一種解決問題的思路。
傳統(tǒng)的編程思想是面向過程,他關注的是實現(xiàn)功能的步驟。
在面向?qū)ο蟮乃枷胫形覀冎恍枰P注實現(xiàn)功能的對象。而不必要知道這個對象是怎么實現(xiàn)這個功能的。拿來用就行了。比如說吃飯,我們不需要會做飯,只要知道點個餐,就會有飯吃就行了。
面向?qū)ο蟮娜齻€特點:
封裝:將數(shù)據(jù)和功能結合在一起就是封裝。
繼承:所謂繼承就是別人沒有的東西,我拿過來,變成自己的東西。
多態(tài):多態(tài)這個概念是基于強類型的語言的,而js是弱語言,他本身就是多態(tài)的。

2.sass與less有什么區(qū)別?二者有何優(yōu)缺點?

Sass(Sass3又稱為SCSS)和less都是CCS的預處理器。
而且less是參考了sass而創(chuàng)造出來的。二者的語法都差不多。
sass比less要強大,sass可以自定義函數(shù),自由使用if語句,而這些都是less所不具備的。我推薦使用sass。

3.什么是AMD規(guī)范?

AMD是Asynchronous Module Definition,異步模塊定義,是一種瀏覽器端的模塊開發(fā)規(guī)范。而服務端是用的CommonJS規(guī)范。
requireJS對模塊的態(tài)度是預執(zhí)行,將需要依賴的的模塊先加載出來。
優(yōu)點:
(1)實現(xiàn)js文件的異步加載,避免網(wǎng)頁失去響應;
(2)管理模塊之間的依賴性,便于代碼的編寫和維護。
前端模塊化開發(fā)的優(yōu)點:
(1)方便代碼的后期維護
(2)防止全局變量的污染
(3)更好的進行HTML和JS分離

MVC和MVVM設計模式

MVC(Model View Controller)數(shù)據(jù)模型 視圖 控制器
缺點:
1.模型的代碼很少
2.容易造成控制器代碼冗余
3.不好測試
MVVM(Model View ViewModel)數(shù)據(jù)模型 視圖 視圖模型
MVVM的概念:
1.在MVVM中,View和Controller聯(lián)系到一起,成為一個組件
2.View和Controller都不能直接引用model
3.在ViewModel中寫驗證邏輯、視圖顯示邏輯、發(fā)起網(wǎng)絡請求和其他代碼
MVVM使用注意事項:
1.view 引用 view model,但反過來不行
2.view model 引用了 model,但反過來不行
3.如果我們破壞了這些規(guī)則,便無法正確地使用 MVVM
MVVM 的優(yōu)點
1.低耦合:View 可以獨立于 Model 變化和修改,一個 ViewModel 可以綁定到不同的 View 上
2.可重用性:可以把一些視圖邏輯放在一個 ViewModel 里面,讓很多 view 重用這段視圖邏輯
3.獨立開發(fā):開發(fā)人員可以專注于業(yè)務邏輯和數(shù)據(jù)的開發(fā) ViewModel,設計人員可以專注于頁面設計
4.可測試:通常界面是比較難于測試的,而 MVVM 模式可以針對 ViewModel 來進行測試

JSONP的優(yōu)缺點?

優(yōu)點:
1.它不像XMLHttpRequest對象實現(xiàn)的Ajax請求那樣受到同源策略的限制,JSONP可以跨越同源策略;
2.它的兼容性更好,在更加古老的瀏覽器中都可以運行,不需要XMLHttpRequest或ActiveX的支持
3.在請求完畢后可以通過調(diào)用callback的方式回傳結果。將回調(diào)方法的權限給了調(diào)用方。這個就相當于將controller層和view層終于分開了。我提供的jsonp服務只提供純服務的數(shù)據(jù),至于提供服務以 后的頁面渲染和后續(xù)view操作都由調(diào)用者來自己定義就好了。如果有兩個頁面需要渲染同一份數(shù)據(jù),你們只需要有不同的渲染邏輯就可以了,邏輯都可以使用同 一個jsonp服務。
缺點:
1.它只支持GET請求而不支持POST等其它類型的HTTP請求
2.它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調(diào)用的問題。
3.jsonp在調(diào)用失敗的時候不會返回各種HTTP狀態(tài)碼。
4.缺點是安全性。萬一假如提供jsonp的服務存在頁面注入漏洞,即它返回的javascript的內(nèi)容被人控制的。那么結果是什么?所有調(diào)用這個 jsonp的網(wǎng)站都會存在漏洞。于是無法把危險控制在一個域名下…所以在使用jsonp的時候必須要保證使用的jsonp服務必須是安全可信的。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容