博客 / 詳情

返回

“寒冬”三年經驗前端面試總結(含頭條、百度、餓了麼、滴滴等)

前言

跳槽是每個人的職業生涯中都要經歷的過程,不論你是搜索到的這篇文章還是無意中瀏覽到的這篇文章,希望你沒有白白浪費停留在這裏的時間,能給你接下來或者以後的筆試面試帶來一些幫助。

2019也許是互聯網未來10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去嘗試嘗試,你永遠不知道市面上的行情如何。這次找工作下來,我自身感覺市場並沒有那麼可怕,也拿到了幾個大廠的offer。在此進行一個總結,給自己,也希望能幫助到需要的同學。


往期

  1. "寒冬"三年經驗前端面試總結(含頭條、百度、餓了麼、滴滴等)之手寫題(一)
  2. "寒冬"三年經驗前端面試總結(含頭條、百度、餓了麼、滴滴等)之手寫題(二)
  3. "寒冬"三年經驗前端面試總結(含頭條、百度、餓了麼、滴滴等)之手寫題(promise篇)

面試準備

面試準備根據每個人掌握的知識不同,準備的時間也不一樣。現在對於前端崗位,以前也許不是很重視算法這塊,但是現在很多公司也都會考。建議大家平時有空的時候多刷刷leetcode。算法的準備時間比較長,是一個長期的過程。需要在掌握了大部分前端基礎知識的情況下,再有針對性的去複習算法。面試的時候算法能做出來肯定加分,但做不出來也不會一票否決,面試官也會給你提供一些思路。

筆試題

筆試題一般考的都是基礎知識,複習基礎知識建議看書,高程和你不知道的JS都行,會講的比較細。

CSS

css基本上每個公司也都會問,但是問的不會很深,都是一些常見的問題。

  • 盒模型
  • 垂直居中方法
  • 三欄佈局
  • 選擇器權重計算方式
  • 清除浮動的方法
  • flex
  • 什麼是BFC、可以解決哪些問題
  • position屬性
  • 如何實現一個自適應的正方形
  • 如何用css實現一個三角形

手寫題

手寫題每個公司都會有,範圍也比較固定,如果之前好好準備的話,應該沒什麼問題。

  • 防抖和節流
  • 深拷貝
  • 數組去重、數組亂序
  • 手寫call、apply、bind
  • 繼承(ES5/ES6)
  • sleep函數
  • 實現promise
  • 實現promise.all
  • 實現promise.retry
  • 將一個同步callback包裝成promise形式
  • 寫一個函數,可以控制最大併發數
  • jsonp的實現
  • eventEmitter(emit,on,off,once)
  • 實現instanceof
  • 實現new
  • 實現數組flat、filter等方法
  • lazyMan

ES6

現在基本上都會使用ES6開發。ES6也成為了一個面試必考點。一般面試官都會問用過ES6的哪些新特性,再針對你所回答的進行深入的提問。

  • let、const、var區別
  • 箭頭函數與普通函數的區別
  • 變量的結構賦值
  • promise、async await、Generator的區別
  • ES6的繼承與ES5相比有什麼不同
  • js模塊化(commonjs/AMD/CMD/ES6)

瀏覽器相關知識

瀏覽器相關知識幾乎是每個公司都會問到的考點,裏面涉及的東西也比較多。其中緩存、http2、跨域必問。

  • 從輸入URL到呈現頁面過程
  • 強緩存、協商緩存、CDN緩存
  • HTTP2
  • HTTP狀態碼
  • 三次握手與四次揮手
  • 跨域(JSONP/CORS)
  • 跨域時如何處理cookie
  • 垃圾回收機制

web安全

一般我都會從xss和csrf説起。

  • https
  • 什麼是xss,如何預防
  • 什麼是csrf,如何預防
  • 為什麼會造成csrf攻擊

事件循環

事件循環絕對是一個必考題。其中涉及到宏任務、微任務、UI渲染等的執行順序,瀏覽器端的必須要掌握,node端的有精力的最好也能掌握。

框架(vue)

因為我一直用的都是vue框架,所以問的也都是跟vue相關的。vue中的高頻題也不外乎雙向綁定、虛擬dom、diff算法這些。

  • watch與computed的區別
  • vue生命週期及對應的行為
  • vue父子組件生命週期執行順序
  • 組件間通訊方法
  • 如何實現一個指令
  • vue.nextTick實現原理
  • diff算法
  • 如何做到的雙向綁定
  • 虛擬dom為什麼快
  • 如何設計一個組件

webpack

webpack也基本上成了必考的內容,一般會問是否配置過webpack、做過哪些優化之類的。

  • 用過哪些loader和plugin
  • loader的執行順序為什麼是後寫的先執行
  • webpack配置優化
  • webpack打包優化(happypack、dll)
  • plugin與loader的區別
  • webpack執行的過程
  • 如何編寫一個loader、plugin
  • tree-shaking作用,如何才能生效

性能優化

  • 首屏加載如何優化
  • 一個網頁從請求到呈現花了很長時間,如何排查

因為之前的經歷大部分都集中在PC端,所以移動端的經驗比較少。面試官也不會一直問你移動端的東西,問也就問一些常見的問題,比如1px問題、如何適配等。react用的也不多,問的也不多,也就會問問react與vue的對比之類的問題。

基本的問題過了之後,有的面試官還喜歡問一些開放性的問題。比如平時都是如何學習的、最近了解了什麼新技術、未來的職業規劃、為了達到這個目標目前做了什麼努力等等。

總結的基本上就是這麼多了,上面問題的答案我也會陸續給出,給大家一個參考。
喜歡的可以點個收藏哈~
最後預祝看了此篇文章的小夥伴們都能收穫多多的offer,找到自己滿意的工作~

user avatar peter-wilson 頭像 jidongdehai_co4lxh 頭像 ivyzhang 頭像 dujing_5b7edb9db0b1c 頭像 coderleo 頭像 flymon 頭像 shaochuancs 頭像 ershixiong_5c2aeab02da87 頭像 zhangxishuo 頭像 jianqiangdepaobuxie 頭像 waweb 頭像 qianduanlangzi_5881b7a7d77f0 頭像
38 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.