前端面試題

2021-10-19 21:41:38 字數 2179 閱讀 3048

js是單執行緒的,將任務放在主線程中執行,碰到同步任務的時候就直接執行,碰到非同步任務的時候就將任務放到非同步處理模組中,非同步處理模組處理完了以後會把非同步任務放到任務隊裡中,主線程執行完全部任務以後會檢視任務佇列中是否任務需要執行,有的話就那乙個過來執行,又執行完以後主線程又是空的就又去任務佇列裡面看有沒有需要執行的任務,反覆這個過程,就叫時間迴圈(event loop)

巨集任務就是定時器任務,微任務就是promise的then catch finally。**執行原則是優先執行巨集任務,執行完再檢視下面有沒有微任務,如果有就執行,接著再執行下乙個的巨集任務

只拷貝最外面一層,如果裡面的成員還包括物件或者資料只拷貝位址就是淺拷貝,深拷貝就是無論有幾層都完全拷貝,實現深拷貝的方法有json.parse(json.stringfy(obj)),或者遞迴還有loadsh外掛程式裡面的deepclone()也可以,堆記憶體裡面用於存放值,棧記憶體存放名和位址,如果淺拷貝就只是在棧內容開闢了一塊不一樣的名字但是指向相同位址,而深拷貝是堆記憶體也重新開闢了一塊

遞迴簡單來說就是函式自己呼叫自己,要加上某些判斷條件否則無止境的執行會造成記憶體溢位導致記憶體洩漏。一般用於求階層或者斐波那契數列

function fib(n)

else

}

閉包就是一種其他作用域使用函式作用域裡面的值,一般的格式是函式內返回乙個函式,並且子函式使用了母函式的變數,用於某些特定的操作,母函式的變數短時間內不會銷毀,並且數值可以儲存下來進行多次操作

掛載在建構函式上的就是靜態成員,掛載在例項上的就是例項成員

開闢一塊公共的空間存放物件的公共方法或者屬性,達到節省記憶體的目的,任何物件都有原型,建構函式.prototype就是原型,你可以在原型上新增方法和物件這樣他們的例項成員就擁有了同樣的方法和物件,並且記憶體中只存在乙個

每個例項物件都有乙個__proto__屬性指向原型物件,也就是說p1.__proto__ === person.prototype,原型的原型物件上又有乙個constructor屬性,指向person這個建構函式

在建構函式中指向例項物件,在普通函式中指向呼叫者

後端的分層開發概念,model負責儲存資料與後端資料進行同步,view負責展示將model中的資料視覺化,controller負責業務邏輯,根據使用者行為對model資料進行修改

優點:耦合性低,重用性高,部署快

缺點:可維護性差,資料流混亂

前端檢視層開發概念,viewmodel通過實現一套資料響應式機制自動響應model中資料變化,它還會實現一套更新策略自動將資料變化轉換為檢視更新,通過事件監聽響應view中使用者互動修改model中的資料,這樣在view中就減少了大量dom操作**

優點:資料驅動,雙向繫結,耦合度低,兼顧開發效率和可維護性

在子函式中呼叫父函式並且使用call將父函式的this指向繫結為子函式

用原型實現,將想要繼承的原型物件繫結在prototype上

es6中則是用class 中的super()實現

在非ie瀏覽器(如firefox)下,當容器的高度為auto,且容器的內容中有浮動(float為left或right)的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢位到容器外面而影響(甚至破壞)布局的現象。這個現象叫浮動溢位,為了防止這個現象的出現而進行的css處理,就叫css清除浮動

.news 

.news img

.news p

.clearfix:after

.clearfix

優化dom,刪除不必要的**和注釋

減少重繪和回流

懶載入事件委託

防抖/節流

減少http請求

合理應用快取

用icon-font替代

css資源放在頭部,js放在尾部

前端面試題

sprites是什麼和為什麼要使用他們?css 精靈 把一堆小的整合到一張大的上,減輕伺服器對的請求數量 有可能替代sprites的方法是什麼?svg圖示,字型圖示,字元編碼等等。1 在div排版的時候,假設現在是100px的寬,我在盒子左側用padding left留個10px的白,div就撐開了...

前端面試題

行內元素有哪些?塊級元素有哪些?空 void 元素有哪些?link和 import的區別是?常見相容性問題?含移動端 html5的離線儲存?描寫一段語義化的html 吧 html5的form如何關閉自動完成功能?什麼是閉包 closure 為什麼要用?localstorage和sessionstor...

前端面試題

朋友碰到的筆試題,在此記錄一下,並且記下碰到的有難點但是自己沒注意的到的面試題!function isnumber x else sum 2,3 5 sum 2 3 5 請寫出sum函式的具體實現。function sum a,c return a c 該題考查的是乙個以前沒接觸過的東西,叫做柯里化...