「金九銀十「跳槽季,又到了面試求職的高峯期。好多小夥伴都會跳槽去找工做。若是你不跳槽,也建議把這篇文章看完,畢竟金九銀十以後,就是金三銀四了,老是逃不掉的css
你在面試的時候,是否遇到過如下問題:html
若是你中了其中2條以上,那本文必定要認真讀完。
從9月開始,我分別面試了百度、快手、愛奇藝、阿里、滴滴、字節跳動、好將來、貝殼等8家互聯網大廠,順利拿到4家offer,並最終入職愛奇藝,年薪48萬。
本文記錄了以上8個互聯網大廠的面試題目,帶你全面瞭解——【最近,前端面試都問些什麼】前端
百度vue
一、請分析如下代碼執行結果node
二、請分析如下代碼執行結果react
三、請寫出 inner 的實際高度。linux
四、手寫一個深拷貝函數。webpack
五、HTTP 狀態碼 301 302 304 403。程序員
六、手寫發佈訂閱模式 EventEmitter。web
七、手寫一個多表查詢的 sql 語句。
當時用的是 left join 實現。
八、react 高階函數的寫法,一般有哪幾種。
第一種是經過工廠模式直接 wrapper,第二種是經過組件反向繼承的方式。
九、delete 數組的 item,數組的 length 是否會 -1。
不會。
十、mongoDB 中的 BSON 是什麼?
B 表明二進制。
十一、關係型數據庫和 nosql 查詢效率誰高?
關係型是 B+ tree 查詢效率相對較高。
十二、使用 node app.js 開啓服務,如何讓它在後臺運行。
開啓守護進程,在命令後加上 & 符號,表示開啓守護進程來執行。
1三、儘量寫出更多的數組反作用方法。
百度三面:
一、實現一個週歲函數,例如 fn('2018-8-8') 輸出 1,只要是過了生日就 +1。
二、不斷優化剛纔實現的函數,用盡一切辦法,多問一問還有嗎?跳出本身的固定思惟圈。
阿里
一、vue 雙向數據綁定原理,依賴收集是在何時收集的?
是在 created 生命週期以前,render 生成虛擬 dom 的時候。
二、react hooks 原理是什麼?
hooks 是用閉包實現的,由於純函數不能記住狀態,只能經過閉包來實現。
三、useState 中的狀態是怎麼存儲的?
經過單向鏈表,fiber tree 就是一個單向鏈表的樹形結構。
React Hooks 原理
快手
一、請寫出如下代碼執行結果。
二、請寫出如下代碼執行結果。
三、ts 如何獲取一個函數的類型,以及獲取一個函數參數的類型。
四、ts 泛型約束的多種方法。
五、parseInt 的第二個參數是什麼?
第二個參數表示將字符串當作幾進制進行解析。
六、實現一個多列等高佈局,多種方式。
七、函數提高,若是加了一個括號,還會提高嗎?
不提高。
八、setTimeout 的第三個參數,能夠傳遞函數的初始參數。
九、bind 函數的第二個參數,能夠傳遞函數的初始參數。
十、使用 ts 時,若是不在 a 後面加類型,怎麼建立一個 number[] 的數組?
十一、react 源碼看過嗎,<Component1 /> 最後編譯出來是個什麼東西,是個什麼類型?
ReactElement 類型。
愛奇藝
一、瀏覽器渲染 js,html,css 的順序。
二、react dom diff 算法,list 比較首先比較的是什麼?
首先比較同層級元素,從左到右。
三、爲何 react 要作成異步的呢?
四、對象的 {…} 解構,是 rest 嗎?
是。
五、本身實現一個 Symbol Interator 。
六、options 頭是在何時會進行發送。
七、sessionStorage 在兩個 tab 窗口能共享嗎?
不能,和後端的 session 相似,每個窗口對應一個會話層。
八、localStorage 存放的只能是 string 類型。
插入時須要將對象轉換爲字符串,讀取時須要作 JSON.parse 轉換。
九、寫一個 0-100 的正則表達式。
十、linux 中怎麼查看內存和磁盤。
十一、meta 標籤用過嗎,都用來作些什麼?
滴滴
一、快速排序和二分排序選一個手寫。
手寫了一個快排。
二、手寫一個 eventEmitter。
三、手寫兩個數組的交集。
四、webpack 運行流程,seal 方法以後都有什麼?何時生成 chunk ?
五、ts 中 ThisType <T> 是什麼?
ThisTypeT
六、手寫一個 es5 繼承。
寄生組合繼承
七、react hooks 主要用來作什麼?
hooks 介紹
八、https 有什麼缺點?
三面問題:
一、你工做中作過的最牛的項目是什麼?
按實際項目實話實說,可按緣由,過程,結果三個維度進行介紹。
二、深挖項目中的技術棧,追問項目中的難點,須要給出具體的解決方案。
根據實際狀況說明便可,儘可能多表達你本身對該項目的思考。
三、針對項目中的優缺點進行分析,並讓你給出相應的優化方案。
主要考察對項目的思考。
四、還有其餘最牛的項目嗎?
通常一個項目不夠,儘可能多準備幾個。
字節跳動
一、請分析如下代碼執行結果
二、手寫一個節流函數
手寫節流函數
三、什麼是裝箱和拆箱
裝箱和拆箱操做,可以在值類型和引用類型中架起一作橋樑。換言之,能夠輕鬆的實現值類型與引用類型的互相轉換。
裝箱是將值類型轉換爲引用類型,拆箱是將引用類型轉換爲值類型。
四、什麼是委託
粗略來講,一個類想執行一個方法,但它自己沒有這個方法,這個方法在另外一個類中,因而它「委託」那個類來幫它執行。
五、手寫一個 reduce 方法。
六、手寫一個模板字符串替換方法
七、看過 antd 源碼嗎,如何實現一個 Model,Message 組件?
只能猜測到 React Portals,未層看過源碼,有待提高。
八、若是要設計一套微前端架構,說說你的具體思路?如何實現主頁面事件註冊機制?如何解決多個 iframe 同時通訊?
須要有落地實戰項目,否則很難答好,消息加鎖等。
好將來
一、同步,異步,阻塞,非阻塞,分別解釋一下。
以燒水的案例來理解。
二、cdn 是如何匹配最近的節點的?
經過動態 dns 解析。
三、promise 實現一個 sleep。
貝殼
一、實現一個 css 佈局,每一列的第一個和最後一個元素,在最左最右側,其餘的元素均勻分佈。
案例:第一行 4 個元素,第二列 2 個元素。
二、請分析如下代碼執行結果
三、請分析如下代碼執行結果
技術面試通常分爲三面。
一面:考察基礎,必須過硬,如:js、css、html、tcp/ip 協議棧、瀏覽器渲染等。
二面:結合實際項目考察技術深度,如:react、vue、koa、ts、webpack 等。
三面:結合實際項目考察項目思考,如:react 的優缺點、前端方向的思考、以及解決問題的思考方式等。
前端程序員的福利
巴菲特有句名言:「人生就像滾雪球,最重要的是發現溼的雪和長長的山坡。」職業發展亦是如此,前端人除了埋頭踏實苦幹,更要懂得擡頭思考遠望,在行業變化中找到正確的方向。若是你想:
歡迎關注公衆號:【fkdcxy,瘋狂的程序員丶】 免費獲取【大廠前端面試經驗】
想了解更多前端開發者面試相關歡迎評論區留言或私信我!