1月前端面試記

2021-09-27 09:26:45 字數 1811 閱讀 6491

前兩道題比較基礎,只要有js基礎的同學一般都應該沒什麼問題。第三道題,有些難度,但是我之前曾在網上見過該題,使用佇列或者promise都可以。第四道題,看完之後一臉懵逼,想了半天也沒明白它考察什麼內容。由於時間關係,我直接用了window.getcomputedstyle。後來交完之後仔細想想,好像確實有很多情況沒考慮到,例如當這個元素的背景色為透明時,它最終的背景色應該為其父元素的背景色。

演算法題只有一道:什麼是淺複製和深複製?有什麼區別?如何實現object的深複製?

首先我對這個問題進行分析,object是乙個樹形結構,所以我採用遞迴的方法進行複製。面試官隨後提問能否通過迴圈的方法?我思考了一會,回答說迴圈的關鍵在於迴圈條件的設定,我想借助棧作為迴圈判斷的條件,當棧為空時,迴圈結束。當時我立馬反應過來,因為object子節點的個數不確定,可能入棧出棧會存在一定問題。面試官隨後問,還有什麼東西沒有考慮到嗎?我想了下說沒有。他提示了下,如果出現環怎麼辦?我愣了一下說不知道。然後他給我個提示說使用深度優先的方法借助棧並不能解決這個問題,然後讓我使用寬度優先試試,將**發給他。面試結束後我發給了他我的**,各位可以參考下:

// 深度優先遍歷複製, 借助佇列

function

deepcopy(obj) ,

srcqueue = [obj], srcvisitedqueue = ,

copyqueue = [newobj], copyvisitedqueue = ;

while (srcqueue.length > 0) else else ;

copyqueue.push(currentcopyelement[key]);}}

}}

return newobj;

}// test case

// 1. 只含有簡單型別的object => pass

// 2. 簡單型別和複雜型別同時存在的情況下的object => pass:

// var obj1 =

// },

// h:

// };

// 3. 有環的情況下的object => pass:

// var obj1 = ;

然後面試官問了關於我專案經歷,之前曾看到你推進過公司的模組化,請問是基於什麼背景,你是如何推進的,遇到過什麼問題等等。

uc的面試是最輕鬆的,以至於我感覺我可能沒通過。

uc第一面是乙個阿里非常高階的前端工程師,面試大約一小時。首先讓我講了講我對移動前端的了解?然後我講了講移動前端布局,js方面,效能優化等,大於15分鐘。然後他問我如何理解前端工程化?然後我又講了15分鐘等。然後他問我有什麼問題嗎?我問請問你如何理解前端以及你是如何從pc端轉入移動端?他站在黑板上給我講了20多分鐘。包括hybrid技術以及現在流行的rn和weex,以及阿里現在的業務使用的一些技術以及為什麼使用等。第一輪面試結束。

第二輪面試是乙個後端的哥們,面試大約30分鐘。問了我一些前端優化的方法,以及平常遇到過最大的困難是什麼,如何解決。有什麼難忘的事等。然後問我有什麼問題?我說為什麼你不問我前端的基礎知識也不問我前端的專案經驗?他說沒必要,已經了解我的背景了等等,然後帶我吃了個飯。

由於面試的是移動方面的業務,所以主要問的有zepto庫的使用,移動端布局,優化,js的一些基礎還有localstorage等。重點還問了一下我是如何在專案中開展測試的(單元測試和e2e測試)。後序面試由於要去深圳總部,所以我推掉了。

針對於前端的面試,還是需要一定的時間去好好梳理,尤其是知識點的細節一定要非常清楚。關於專案經歷一定要有一條主線,在這條主線上你做過什麼,遇到過什麼坑,怎麼解決一定要非常清楚等。另外一點演算法還是很重要的,推薦大家一本書《劍指offer>>,面試前我前前後後看過三遍。共勉之!

1月前端面試記

前兩道題比較基礎,只要有js基礎的同學一般都應該沒什麼問題。第三道題,有些難度,但是我之前曾在網上見過該題,使用佇列或者promise都可以。第四道題,看完之後一臉懵逼,想了半天也沒明白它考察什麼內容。由於時間關係,我直接用了window.getcomputedstyle。後來交完之後仔細想想,好像...

2023年5月前端面試題

在上家公司裸辭之後,經過一段時間休整,5月中下旬面試了一些公司,由於本人框架使用的是vue,所以面試題涉及到框架的都是vue,現將面試題整理一下 列舉常用的es6特性。let,const,var的區別。箭頭函式this的指向。手寫es6 class繼承。promise的狀態,鏈式呼叫,同步非同步流程...

web前端面試(1)

1 https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。2 http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。3 http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。4 http的連線很簡單,是無狀態的 h...