跪在一面:字節(jié)跳動前端面試8道題,就像坐過山車樣刺激
前言
能有大廠面試的機會,絕對要去珍惜,因為他真的可以幫你找出你太多的不足,準(zhǔn)確命中你的弱點!
還有,一定要善于總結(jié)經(jīng)驗,總結(jié)面試題,為后面的面試儲蓄能量。
末尾有福利!末尾有福利!
我的面試結(jié)果
哎!長嘆一口氣...
我跪在了一面!但是,這次的面試,絕對是我面試生涯中,最最覺得特別值得的一次,也是讓我備受打擊的一次!他成功地讓我跪在大廠的面前,又讓我重新地去認(rèn)識自己,不是會寫個頁面就是前端開發(fā)工程師,不是會調(diào)用一次ajax,就是前端開發(fā)工程師,不是會寫個css就是前端開發(fā)工程師!
自我介紹
關(guān)于自我介紹方面,可以說我真的沒什么可以多介紹的。相信很多的前端開發(fā)的小伙伴都跟我有同樣的感受吧!畢竟,在公司工作的大部分時間都交給了重復(fù)的需求上,別說你沒有!除非你的工作真的不飽和!哈哈。。。但是呢,自我介紹真的不可以輕易地放過,因為他可能是你打開面試官興趣的鑰匙。如果你介紹的好,你可以一步步地引導(dǎo)面試官問一些你熟悉了解的知識,可以不被面試官牽著鼻子走!但是。。。我真的沒有很優(yōu)秀的可以說得出口的東西?。∵@是真的硬傷,所以,還是奉勸各位小伙伴,在業(yè)余的生活中,還是要做一些自己感興趣,算了!可能你也真的不感興趣!一定要做一些你不了解的但是對前端又非常的重要的知識,嘗試著去實現(xiàn)一下!例如,本人就不是很熟悉Node方面的知識,平時的開發(fā)中也不常用,如果你真的有特別出色的開源項目,一定要介紹出來,會引起面試官很大的興趣!跑題了哈。。。
第一道題:說一下你在項目中遇到的比較有挑戰(zhàn)性的工作?
這是一道比較開放性的問題!完全靠面試者自己在平時的開發(fā)中自我總結(jié)!我覺得,面試官真正想要了解的,是你在開發(fā)中,遇到棘手問題,如何解決,還有就像是上面說到的,有沒有做一些自己平時工作中可能沒有使用,但是作為前端開發(fā)必須要掌握的知識。這個就因人而異了,多多總結(jié),多多吸取教學(xué),這都是以后進入大廠的鋪路石。
第二道題:關(guān)于flex布局,如何實現(xiàn)垂直居中?
我相信,但凡有準(zhǔn)備面試的小伙伴,都會在各個文章、博客中看到過,實現(xiàn)垂直居中的1001種辦法,面試官想要考察的,絕不僅僅是你能說出flex的垂直居中,你需要掌握的是全部的flex布局的知識,因為,flex布局的出現(xiàn),極大的減輕的開發(fā)頁面的負(fù)擔(dān),簡介、輕量化、語義化!你真的完全掌握了嗎?還不去翻阮一峰的博客?
第三道題:關(guān)于瀏覽器,從URL輸入,到頁面的完全展現(xiàn),都經(jīng)歷了什么?
這題,你也看過,但是你能完完整整地描述出來嗎?我覺得,你應(yīng)該再從腦子里面過一遍,不要留下任何的知識點,因為這里面能問到的知識,真的太多了!DNS解析,http請求,關(guān)于緩存,HTML樹,頁面渲染,回流、重繪。你都完全地掌握了嗎?去翻博客吧!
第四道題:關(guān)于頁面的加載,css的解析會影響js的執(zhí)行嗎?css加載會影響嗎?
這題,如果你完整地讀過Javascript高級程序設(shè)計,你一定知道關(guān)于async和deffer的區(qū)別!別說你這也不知道,如果你真的不知道,那就去翻吧!
第五道題:關(guān)于promise的執(zhí)行順序?
都知道,promise是異步執(zhí)行,但是,你知道為什么promise能實現(xiàn)異步執(zhí)行嗎?then方法的參數(shù)的意義是什么?我一時的大腦一片空白,明明每天都在調(diào)用接口,使用promise。也每天都在使用then方法,那時,我就是說不出來!不要像我一樣,因為我掌握的可能真的不徹底,所以很快就暴露出來了,還沒等問到你promise實現(xiàn)的原理呢!
第六道題:輸入框輸入,請求后臺接口,第一個接口返回的信息可能比較慢,到第二次調(diào)用后信息已經(jīng)返回了,前一條數(shù)據(jù)才出來,如何避免頁面被第一個接口返回的信息覆蓋?
我當(dāng)時的回答是,給后端發(fā)送字段,然后判斷返回的字段的先后順序,比如A接口參數(shù)傳1,再次調(diào)用時傳2...
面試官不太滿意,因為如果頁面大量的get請求,很不方便,還要傳參!如何解決呢?我當(dāng)時沒有好的方法,你有嗎?
(面試官:可以在axiox response攔截,比對我我們發(fā)送的參數(shù),進行比較,然后篩選出后輸入值返回的數(shù)據(jù))
第七道題:多維輸入,如何判斷數(shù)組的最深層有多少層?例如:[1,3,3[4,6,7,[5,6,7,43,[23,4]]]],返回4!
來吧,突破你的想象力,你有多少種實現(xiàn)的方法?
第一種:遞歸,但是,是不是殺雞用牛刀?
第二種:數(shù)組轉(zhuǎn)化為字符串,然后查出多少個‘[’活著‘]’是不是更方便呢?
第八道題:http和https的區(qū)別是什么?
都知道https更安全,他是如何實現(xiàn)的比http更安全的呢?在哪里用到了對稱加密?哪里用到了非對稱加密?
這篇文章不是給大家進行知識點總結(jié),如果你還不知道,那就去學(xué)吧!
面試總結(jié)
面試掛掉如何調(diào)整心態(tài)
面試掛掉有這么幾種可能:
1、對方發(fā)現(xiàn)你不適合他們:比如對方想招一個帶團隊的,而你是做技術(shù)。遇到這種情況不要沮喪,這不是你的問題。我因為這個拒面的占50%(包括對方拒絕我,和我拒面對方)
2、Head Count 有限,他們選擇了其他的人:遇到這種情況也不要沮喪,畢竟人外有人,而他們 Head Count 可能只有一個。如果你面試前能夠和HR或工程師直接接觸,也可以問問他們有多少 Head Count
3、真的是憑實力掛掉了:這個確實可以稍晚沮喪下,然后痛定思痛,反思反思自己是不是哪里需要查漏補缺,或是表達方法哪里有什么問題。
面試題歸類
我結(jié)束面試后,把面試題分幾大類總結(jié)出來整理成一份PDF文檔,方便查找和學(xué)習(xí),每道題下面都有詳細(xì)的解析,需要前端字節(jié)跳動真題解析的小伙伴們直接點擊這里領(lǐng)取
HTML
HTML5 有哪些新特性?
Doctype作?? 嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?
如何實現(xiàn)瀏覽器內(nèi)多個標(biāo)簽頁之間的通信?
?內(nèi)元素有哪些?塊級元素有哪些? 空(void)元素有哪些??內(nèi)元 素和塊級元素有什么區(qū)別?
簡述?下src與href的區(qū)別?

CSS
請你講一講 CSS 的權(quán)重和優(yōu)先級
介紹 Flex 布局,flex 是什么屬性的縮寫:
CSS 怎么畫一個大小為父元素寬度一半的正方形?
CSS實現(xiàn)自適應(yīng)正方形、等寬高比矩形
實現(xiàn)兩欄布局的方式
實現(xiàn)三列布局的方式
CSS 動畫有哪些?

JavaScript 基礎(chǔ)
問:0.1 + 0.2 === 0.3 嘛?為什么?
JS 數(shù)據(jù)類型
JS 整數(shù)是怎么表示的?
Number() 的存儲空間是多大?如果后臺發(fā)送了一個超過最大自己的數(shù)字怎么辦
寫代碼:實現(xiàn)函數(shù)能夠深度克隆基本類型
事件流
事件是如何實現(xiàn)的?
new 一個函數(shù)發(fā)生了什么

Vue框架
active-class是哪個組件的屬性?嵌套路由怎么定義?
怎么定義vue-router的動態(tài)路由?怎么獲取傳過來的動態(tài)參數(shù)?
vue-router有哪幾種導(dǎo)航鉤子?
scss是什么?在vue.cli中的安裝使用步驟是?有哪幾大特性?
mint-ui是什么?怎么使用?說出至少三個組件使用方法?
v-model是什么?怎么使用? vue中標(biāo)簽怎么綁定事件?
axios是什么?怎么使用?描述使用它實現(xiàn)登錄功能的流程?
axios+tp5進階中,調(diào)用axios.post(‘a(chǎn)pi/user’)是進行的什么操作?axios.put(‘a(chǎn)pi/user/8′)呢?
什么是RESTful API?怎么使用?

計算機網(wǎng)絡(luò)基礎(chǔ)
HTTP 緩存
HTTP 常用的狀態(tài)碼及使用場景?
你知道 302 狀態(tài)碼是什么嘛?你平時瀏覽網(wǎng)頁的過程中遇到過哪些 302 的場景?
HTTP 常用的請求方式,區(qū)別和用途?
你對計算機網(wǎng)絡(luò)的認(rèn)識怎么樣
三次握手和四次揮手

算法
一、鏈表
二、字符串
三、數(shù)組問題
四、二叉樹
五、排序算法
六、二分查找
七、動態(tài)規(guī)劃
......

上面的題目都來自前端字節(jié)跳動真題解析資料,電子版已經(jīng)打包好了,希望對正在學(xué)習(xí)的你帶來幫助~
1.一鍵三連+關(guān)注
2.后臺主動留下痕跡:“面試”(重點)?