一個前端崗位電話面試所帶來的問題的思考

深谷逸風發表於2018-03-15

這絕對不是一篇技術文,如果你不喜歡,也請不要噴,你可以看看都有哪些問題,當然,在這裡你可能得不到問題的答案,不懂的你可能需要自己去百度,也可以在下面留言交流,我已經宣告瞭,這不是一篇純技術文章,不喜勿碰,忽略就是;做文明人,共創一個和諧的網路環境,謝謝;

一、javascript方面問題

1、簡單介紹專案以及所用到的技術,團隊規模

這裡就不一一細說了,反正就是霹靂拍啦一大堆,然後就介紹完了,介紹完了之後,面試官接下來問的問題也基本是根據我描述專案中所涉及到的技術去問吧,直接看問題吧!

2、ajax VS websoket

在websocket沒有出現的時期,我們想要在聊天室這種形態模式下去輪詢查詢新的資料,基本通過setInterval固定時間去重新整理請求,併發不大的時候,還要好點,伺服器差不多的都能撐得住,但是併發一旦大起來,請求一多,好嘛,伺服器資料庫直接蹦;
而websocket這種,只需請求一次,那就是連線伺服器,一旦連線,資料,伺服器主動推送給客戶端,雖然他對伺服器一直keep-alive這種狀態,需要消耗伺服器記憶體,但是相對於ajax無數次不應的請求來說,肯定是大大提高了效能的;
當然兩者肯定有優點有缺定,畢竟性質不一樣,我覺得大家還是有必要了解一下這兩者區別的

3、jQuery VS vue

可能很多人覺得這有什麼可比性,其實我個人覺得,還就是jQuery和這類mv*框架有比較的價值,你想想,三大框架(vue、react、angluar)基本都是運算元據,虛擬DOM,雙向繫結什麼的,這三個框架之間的對比,大致是實現的方式去對比;
但是jQuery,基本是通過操作DOM,完全不一樣的庫,他們之間兩個陣營當然更有可比性; (不喜勿碰,個人見解)

4、setInterval 時間是否會有誤差?產生誤差的原因?其原理是什麼?

這個問題,誤差肯定是會差生的,你想啊,setInterval非同步函式,非同步執行,js被解析的時候,碰到他,先不解析他,放他在一旁,先去解析同步的,等資源空閒下來的才去解析他,這樣一來,解析其他程式碼肯定需要時間,這不就有延誤嘛。
然後解析setInterval內部函式不也一樣需要耗時,函式簡單些還好寫,你要是寫了一大堆,那乖乖,可能產生的延誤就不是一點點的;

5、閉包

老生常談的問題,基本每個前端不管是初級,中級,高階或者資深前端都會被問到的問題吧; 簡單點說就是一句話:有權訪問另一個函式作用域內變數的函式都是閉包; 具體的附上MDN的解釋,我就不做過多解釋了 MDN地址

6、IE中造成記憶體洩漏情況以及原因

這個可能在IE,尤其IE8中表現的最明顯,畢竟其他瀏覽器就是會很卡,但是IE8是直接崩潰,哈,真任性!具體的大家還是去百度吧,當然這個問題不僅僅是存在IE瀏覽器中,在各個瀏覽器中都存在;

7、瀏覽器垃圾回收機制

相信大部分語言,都有這麼個機制,不需要在引用的變數之類的將會被回收,不然的一直常駐在記憶體中,那好嘛,瀏覽器遲早被你弄奔潰,閉包裡面的就不行了,垃圾回收機制檢查不到你這個變數是否被應用啊,所以嘛,造成記憶體洩漏了,如果並非必要,大家還是少寫點閉包,寫了請手動刪除一下或者置為空,畢竟我們們的效能能提升就提升嘛,小細節解決了隱藏的大部分問題不是嗎?

8、雙向資料實現原理

這還是因為三大框架的出現,出現這麼個話題,所以說,現在的趨勢就是這樣,你必須去了解,作為一個前端,你不能停止學習;否則你必將會被淘汰,而且很快,有多快?就像16年之前,你可以憑藉html+css+jq,你就可以找到一份能解決溫飽的問題了;
但是17年可能就困難很多了,當然也不是絕對的說,同時也不是說jq已經OUT了,我個人覺得jq至少在現今還是沒有任何OUT的,如果作為一個真正將前端作為未來職業的人,JQ是必備的一種技能;
但是在這基礎上,你還要必須學會三大框架的至少一種,在中國的這樣的行情下,可能react和vue更加吃香吧,如果你還沒有入手三大框架,個人建議從vue和react中選一個先學,你只有在環境中生存了下來,才能有時間去學習更多的東西,做自己想做的事情; 扯遠了,說回雙向資料繫結,這個還是要去理解一下的,至少知道Object.defineProperty()是怎麼用的,他是個什麼東西

9、頁面優化

這個就是平時我們必須面對的一個問題,所以大家還是要去多多關注多多瞭解,

10、瀏覽器快取原理

講真,這個問題我沒有回答的很好,因為畢竟,那啥,好吧,我麼有研究過這個問題;要是說說cookie,sessionStorage,localStorage我還能講出來,這個原理可能真被問住了,好吧,我表示自己真的有欠缺的方面;只能自己加加油了

11、虛擬DOM

其實主要是因為vue/react這些框架的出現,這個概念才熱起來,個人覺得還是有很多公司會問這類問題的,大家還是要去了解了解

12、在專案中遇到難題以及解決方式

當然也是一頓噼裡啪啦,其實每個人在專案中多多少少都會碰到吧,至於解決方式,我就是回答基本自行百度,或者去技術交流群詢問之類的,不知道大家會怎麼回答這樣的問題,如果可以,歡迎留言交流


二、css方面問題

當時面試官在問css問題之前,先問了一下我會不會css,好吧,當時我愣了一下,說了句,那是會的,其實針對css並沒有問太多,就兩個問題,請看下面具體問題

1、對盒模型的理解

盒模型主要包括如下幾點:margin border padding content;根據width或者height計算時包含的內容不同,而被分為以下兩種盒模型
1、IE盒模型(準確的說是IE8以下盒模型),江湖人稱怪異盒模型;當我們計算width或者height的時候,在IE8以下盒模型時,是包括了padding+border+content三者一起算的
2、IE8及其以上版本瀏覽器盒模型和w3c盒模型,江湖人稱標準盒模型;這種盒模型在我們計算width或者height的時候,是不包括padding+border在內的,而是單一計算content的大小;

2、佈局方式

大概包括以下幾種佈局方式:
1、彈性佈局
2、固定佈局
3、流體佈局
4、混合佈局
5、絕對定位佈局


三、我所要問的問題

當然只是問了一下做什麼專案、我去主要做什麼、技術棧、加班情況等等這些;當然,其實可能有的人會問,為什麼沒有問福利,薪資待遇什麼的,我個人是覺得,這只是電話面試,後面還有很多面,有些問題,不是當面說更好嗎?

四、結束語

每家公司每個區域面試所問的問題可能都不一樣,如果大家在面試中遇到了什麼問題,或者覺得有什麼好技術性面試題,歡迎大家留言交流,也歡迎大家對以上面試進行積極的討論,能回答大家的技術性問題,我一定會回答,感謝大家的閱讀

相關文章