記一次字節(jié)跳動前端面試,四輪技術(shù)面通過,已拿offer
筆者是在去年秋招面試的頭條教育線,順利拿到了offer,把還記得的東西寫下來,供大家參考一下。
【PDF文末拿】
一面:
筆試題
1.如果后端傳給前端一個很大的數(shù),前端會怎么樣,該怎么處理?
2.new的過程
3.瀏覽器的緩存機制(強緩存和協(xié)商緩存)
4.用css3寫一個環(huán)形進度條
5.一道關(guān)于promise的任務(wù)控制編程題
6.說說BFC是什么,能解決什么問題
面試流程
自我介紹然后說一個印象深刻的項目。。。
1.瀏覽器是怎么加載一個HTML的(解析dom,css,js過程。。。)
2.vue-router實現(xiàn)的原理
3.回流重繪,為什么用transform寫動畫不用position top left
4.if...else...多層嵌套怎么解決
5.編程題:n維數(shù)組轉(zhuǎn)換成1維數(shù)組,比如:[1,[2,3],[[4],[5,6]]]變成[1,2,3,4,5,6]
二面:
前端負責(zé)人面,自我介紹然后聊項目經(jīng)驗(一定要講一些出彩的項目,什么難點,如何突破),聊了些工作經(jīng)歷(為什么想換工作,以前的工作有什么收獲,自身的缺點)。。。
技術(shù)題問的不多
1.寫一個EventEmitter
三面:
主管面,介紹工作經(jīng)歷,聊項目亮點balabala
1.編程題,在一個無序數(shù)組中找到第二大的數(shù)
2.項目設(shè)計題,寫一個***大戰(zhàn)(寫出類和屬性方法,不需要實現(xiàn))
3.***大戰(zhàn)的各個動畫是怎么動起來的(游戲引擎怎么運作)
4.當(dāng)瀏覽器地址欄輸入一個url到頁面展現(xiàn),這個過程?
5.https過程
6.http和tcp的關(guān)系
四面:
北京交叉面,主要是聊項目(有亮點的項目,涉及架構(gòu)的項目等),工作中做了什么,未來職業(yè)規(guī)劃是什么,面試官最后還給了一定的建議。
刷過的題目
下面是我花了將近一個月的時間整理的一份面試題庫。這些面試題,包括我本人自己去面試遇到的,還有在面試之前刷過的題目,我都統(tǒng)一的整理了一下,希望對大家有用。
HTML
瀏覽器頁面有哪三層構(gòu)成,分別是什么,作用是什么?
HTML5的優(yōu)點與缺點?
Doctype作用? 嚴格模式與混雜模式如何區(qū)分?它們有何意義?
HTML5有哪些新特性、移除了哪些元素?
你做的網(wǎng)頁在哪些瀏覽器測試過,這些瀏覽器的內(nèi)核分別是什么?
每個HTML文件里開頭都有個很重要的東西,Doctype,知道這是干什么的嗎?
說說你對HTML5認識?(是什么,為什么)
對WEB標準以及W3C的理解與認識?
......
CSS
解釋一下CSS的盒子模型?
請你說說CSS選擇器的類型有哪些,并舉幾個例子說明其用法?
請你說說CSS有什么特殊性?(優(yōu)先級、計算特殊值)
常見瀏覽器兼容性問題與解決方案?
列出display的值并說明他們的作用?
如何居中div, 如何居中一個浮動元素?
請列舉幾種清除浮動的方法(至少兩種)?
block,inline和inlinke-block細節(jié)對比?
什么叫優(yōu)雅降級和漸進增強?
說說浮動元素會引起的問題和你的解決辦法
你有哪些性能優(yōu)化的方法?
......
JavaScript
js的各種位置,比如clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的區(qū)別?
js拖拽功能的實現(xiàn)
異步加載js的方法
js的防抖與節(jié)流
說一下閉包
說說你對作用域鏈的理解
JavaScript原型,原型鏈 ? 有什么特點?
請解釋什么是事件委托/事件代理
Javascript如何實現(xiàn)繼承?
函數(shù)執(zhí)行改變this
babel編譯原理
函數(shù)柯里化
說一下類的創(chuàng)建和繼承
說說前端中的事件流
如何讓事件先冒泡后捕獲
說一下圖片的懶加載和預(yù)加載
js的new操作符做了哪些事情
改變函數(shù)內(nèi)部this指針的指向函數(shù)(bind,apply,call的區(qū)別)
Ajax解決瀏覽器緩存問題
......

由于篇幅限制,展示了部分內(nèi)容截圖,需要完整文檔資料的,文末拿!
Vue
Vue中 key 值的作用
Vue 組件中 data 為什么必須是函數(shù)?
vuex的State特性是?
介紹一下Vue的響應(yīng)式系統(tǒng)
computed與watch的區(qū)別
介紹一下Vue的生命周期
為什么組件的data必須是一個函數(shù)
組件之間是怎么通信的
Vue.cli中怎樣使用自定義的組件?有遇到過哪些問題嗎?
Vue如何實現(xiàn)按需加載配合webpack設(shè)置
簡單描述每個周期具體適合哪些場景
scss是什么?在Vue.cli中的安裝使用步驟是?有哪幾大特性?
聊聊你對Vue.js的template編譯的理解?
Vue 路由跳轉(zhuǎn)的幾種方式
Vue如何實現(xiàn)按需加載配合webpack設(shè)置?
Vue的路由實現(xiàn):hash模式和history模式
Vue與Angular以及React的區(qū)別?
Vue路由的鉤子函數(shù)
什么是Vue的計算屬性?
......
React
介紹一下react
React單項數(shù)據(jù)流
react生命周期函數(shù)和react組件的生命周期
react和Vue的原理,區(qū)別,亮點,作用
reactJs的組件交流
有了解過react的虛擬DOM嗎,虛擬DOM是怎么對比的呢
項目里用到了react,為什么要選擇react,react有哪些好處
怎么獲取真正的dom
選擇react的原因
react的生命周期函數(shù)
setState之后的流程
react高階組件知道嗎?
React的jsx,函數(shù)式編程
react的組件是通過什么去判斷是否刷新的
如何配置React-Router
路由的動態(tài)加載模塊
Redux中間件是什么東西,接受幾個參數(shù)
redux請求中間件如何處理并發(fā)

瀏覽器
跨標簽頁通訊
瀏覽器架構(gòu)
瀏覽器下事件循環(huán)(Event Loop)
從輸入 url 到展示的過程
重繪與回流
存儲
Web Worker
V8垃圾回收機制
內(nèi)存泄露
reflow(回流)和repaint(重繪)優(yōu)化
如何減少重繪和回流?
一個頁面從輸入 URL 到頁面加載顯示完成,這個過程中都發(fā)生了什么?
localStorage 與 sessionStorage 與cookie的區(qū)別總結(jié)
......

服務(wù)端與網(wǎng)絡(luò)
HTTPS和HTTP的區(qū)別
HTTP版本
從輸入URL到頁面呈現(xiàn)發(fā)生了什么?
HTTP緩存
緩存位置
強緩存
協(xié)商緩存
緩存的資源在那里
用戶行為對瀏覽器緩存的影響
緩存的優(yōu)點
不同刷新的請求執(zhí)行過程
......
算法與數(shù)據(jù)結(jié)構(gòu)
二叉樹層序遍歷
B樹的特性,B樹和B+樹的區(qū)別
尾遞歸
如何寫一個大數(shù)階乘?遞歸的方法會出現(xiàn)什么問題?
把多維數(shù)組變成一維數(shù)組的方法
說一下冒泡快排的原理
Heap排序方法的原理?復(fù)雜度?
幾種常見的排序算法,手寫
數(shù)組的去重,盡可能寫出多個方法
如果有一個大的數(shù)組,都是整型,怎么找出最大的前10個數(shù)

由于篇幅限制,展示了部分內(nèi)容截圖,需要完整文檔資料的,看下圖!
