筆者是在去年秋招面試的頭條教育線,順利拿到了offer,把還記得的東西寫下來,供大家參考一下。
一面:
筆試題
1.如果后端傳給前端一個很大的數,前端會怎么樣,該怎么處理?
2.new的過程
3.瀏覽器的緩存機制(強緩存和協商緩存)
4.用css3寫一個環形進度條
5.一道關於promise的任務控制編程題
6.說說BFC是什么,能解決什么問題
面試流程
自我介紹然后說一個印象深刻的項目。。。
1.瀏覽器是怎么加載一個HTML的(解析dom,css,js過程。。。)
2.vue-router實現的原理
3.回流重繪,為什么用transform寫動畫不用position top left
4.if...else...多層嵌套怎么解決
5.編程題:n維數組轉換成1維數組,比如:[1,[2,3],[[4],[5,6]]]變成[1,2,3,4,5,6]
二面:
前端負責人面,自我介紹然后聊項目經驗(一定要講一些出彩的項目,什么難點,如何突破),聊了些工作經歷(為什么想換工作,以前的工作有什么收獲,自身的缺點)。。。
技術題問的不多
1.寫一個EventEmitter
三面:
主管面,介紹工作經歷,聊項目亮點balabala
1.編程題,在一個無序數組中找到第二大的數
2.項目設計題,寫一個***大戰(寫出類和屬性方法,不需要實現)
3.***大戰的各個動畫是怎么動起來的(游戲引擎怎么運作)
4.當瀏覽器地址欄輸入一個url到頁面展現,這個過程?
5.https過程
6.http和tcp的關系
四面:
北京交叉面,主要是聊項目(有亮點的項目,涉及架構的項目等),工作中做了什么,未來職業規划是什么,面試官最后還給了一定的建議。
刷過的題目
下面是我花了將近一個月的時間整理的一份面試題庫。這些面試題,包括我本人自己去面試遇到的,還有在面試之前刷過的題目,我都統一的整理了一下,希望對大家有用。
HTML
- 瀏覽器頁面有哪三層構成,分別是什么,作用是什么?
- HTML5的優點與缺點?
- Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?
- HTML5有哪些新特性、移除了哪些元素?
- 你做的網頁在哪些瀏覽器測試過,這些瀏覽器的內核分別是什么?
- 每個HTML文件里開頭都有個很重要的東西,Doctype,知道這是干什么的嗎?
- 說說你對HTML5認識?(是什么,為什么)
- 對WEB標准以及W3C的理解與認識?
- ......
CSS
- 解釋一下CSS的盒子模型?
- 請你說說CSS選擇器的類型有哪些,並舉幾個例子說明其用法?
- 請你說說CSS有什么特殊性?(優先級、計算特殊值)
- 常見瀏覽器兼容性問題與解決方案?
- 列出display的值並說明他們的作用?
- 如何居中div, 如何居中一個浮動元素?
- 請列舉幾種清除浮動的方法(至少兩種)?
- block,inline和inlinke-block細節對比?
- 什么叫優雅降級和漸進增強?
- 說說浮動元素會引起的問題和你的解決辦法
- 你有哪些性能優化的方法?
- ......
JavaScript
- js的各種位置,比如clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的區別?
- js拖拽功能的實現
- 異步加載js的方法
- js的防抖與節流
- 說一下閉包
- 說說你對作用域鏈的理解
- JavaScript原型,原型鏈 ? 有什么特點?
- 請解釋什么是事件委托/事件代理
- Javascript如何實現繼承?
- 函數執行改變this
- babel編譯原理
- 函數柯里化
- 說一下類的創建和繼承
- 說說前端中的事件流
- 如何讓事件先冒泡后捕獲
- 說一下圖片的懶加載和預加載
- js的new操作符做了哪些事情
- 改變函數內部this指針的指向函數(bind,apply,call的區別)
- Ajax解決瀏覽器緩存問題
- ......
由於篇幅有限,只能分享部分面試題,完整版面試題及答案可以【點擊我】閱讀下載哦~無償分享給大家
Vue
- Vue中 key 值的作用
- Vue 組件中 data 為什么必須是函數?
- vuex的State特性是?
- 介紹一下Vue的響應式系統
- computed與watch的區別
- 介紹一下Vue的生命周期
- 為什么組件的data必須是一個函數
- 組件之間是怎么通信的
- Vue.cli中怎樣使用自定義的組件?有遇到過哪些問題嗎?
- Vue如何實現按需加載配合webpack設置
- 簡單描述每個周期具體適合哪些場景
- scss是什么?在Vue.cli中的安裝使用步驟是?有哪幾大特性?
- 聊聊你對Vue.js的template編譯的理解?
- Vue 路由跳轉的幾種方式
- Vue如何實現按需加載配合webpack設置?
- Vue的路由實現:hash模式和history模式
- Vue與Angular以及React的區別?
- Vue路由的鈎子函數
- 什么是Vue的計算屬性?
- ......
React
- 介紹一下react
- React單項數據流
- react生命周期函數和react組件的生命周期
- react和Vue的原理,區別,亮點,作用
- reactJs的組件交流
- 有了解過react的虛擬DOM嗎,虛擬DOM是怎么對比的呢
- 項目里用到了react,為什么要選擇react,react有哪些好處
- 怎么獲取真正的dom
- 選擇react的原因
- react的生命周期函數
- setState之后的流程
- react高階組件知道嗎?
- React的jsx,函數式編程
- react的組件是通過什么去判斷是否刷新的
- 如何配置React-Router
- 路由的動態加載模塊
- Redux中間件是什么東西,接受幾個參數
- redux請求中間件如何處理並發
瀏覽器
- 跨標簽頁通訊
- 瀏覽器架構
- 瀏覽器下事件循環(Event Loop)
- 從輸入 url 到展示的過程
- 重繪與回流
- 存儲
- Web Worker
- V8垃圾回收機制
- 內存泄露
- reflow(回流)和repaint(重繪)優化
- 如何減少重繪和回流?
- 一個頁面從輸入 URL 到頁面加載顯示完成,這個過程中都發生了什么?
- localStorage 與 sessionStorage 與cookie的區別總結
- ......
服務端與網絡
- HTTPS和HTTP的區別
- HTTP版本
- 從輸入URL到頁面呈現發生了什么?
- HTTP緩存
- 緩存位置
- 強緩存
- 協商緩存
- 緩存的資源在那里
- 用戶行為對瀏覽器緩存的影響
- 緩存的優點
- 不同刷新的請求執行過程
- ......
算法與數據結構
- 二叉樹層序遍歷
- B樹的特性,B樹和B+樹的區別
- 尾遞歸
- 如何寫一個大數階乘?遞歸的方法會出現什么問題?
- 把多維數組變成一維數組的方法
- 說一下冒泡快排的原理
- Heap排序方法的原理?復雜度?
- 幾種常見的排序算法,手寫
- 數組的去重,盡可能寫出多個方法
- 如果有一個大的數組,都是整型,怎么找出最大的前10個數
由於篇幅有限,只能分享部分面試題,完整版面試題及答案可以【點擊我】閱讀下載哦~無償分享給大家