主題 CSS
終于,我也有機(jī)會寫一篇面經(jīng)文~這其中也帶著一絲感傷,提了離職,搬了東西回家,屬于我畢業(yè)后的第一份工作就這樣結(jié)束了~我面試了一些個小中大廠,最終拿到了快手的offer,本篇文章將記錄及分享我在這次面試中積累的一些不是那么成熟經(jīng)驗(yàn)
面試準(zhǔn)備階段
學(xué)習(xí)以及復(fù)習(xí)基礎(chǔ)知識
這一定是第一步需要做的事情,先制定規(guī)劃,然后按照這一條既定的規(guī)劃去學(xué)習(xí)以及復(fù)習(xí),可分為六部分去準(zhǔn)備:
css部分
像 css 這一部分,面試必問,但是它的東西很雜很多,我不知道有多少人和我感覺一樣:學(xué)習(xí)前端最難的是 css ,而不是 js 。
css這一部分,布局、實(shí)現(xiàn)一個什么樣的形狀、一些屬性的使用等問的會多一些~
javascript部分
JavaScript 部分,數(shù)據(jù)類型到一些隱式轉(zhuǎn)換這些基礎(chǔ)知識,看代碼說輸出,v8底層執(zhí)行機(jī)制、垃圾回收、閉包、作用域、作用域鏈,原型、原型鏈,手寫代碼,如:防抖、節(jié)流、 bind 、 call 、 apply 等,深拷貝、淺拷貝, Event Queue 、 Event Loop , Promise 、 async 、 await 等等等都是必須要會的知識點(diǎn),但是我們在學(xué)習(xí)的過程中還是要靈活一些,去學(xué)習(xí)這些思想,而不是一味的去死記硬背~
webpack部分
這一部分是前端工程化的內(nèi)容,還是有必要會的。淺一點(diǎn)說要會的就是一些基礎(chǔ)配置以及優(yōu)化配置,還有像 plugin 和 loader 的區(qū)別等,再深一點(diǎn)就是配置的原理、以及如何寫一個 loader或者 plugin ,然后應(yīng)用這些東西實(shí)現(xiàn)什么樣的需求
框架部分
前端的框架有很多,現(xiàn)在流行的兩個就是 vue 和 react ,我的技術(shù)棧是 react ,所以我是以 react 去準(zhǔn)備的面試,在 react 里面,經(jīng)常問的比如:生命周期、關(guān)于生命周期為什么要廢棄,什么是 虛擬dom 、 diff算法 思想以及 key 的作用、有 key 沒 key 有什么區(qū)別,如何解析 jsx , hooks 的應(yīng)用等
http
關(guān)于服務(wù)這一塊,面試也是會經(jīng)常問, http 狀態(tài)碼所代表的含義, http 與 https 的區(qū)別, http 的三次握手以及四次揮手等
項(xiàng)目
面試離不開項(xiàng)目,所以對自己過往項(xiàng)目的理解尤為重要,上面的很多知識點(diǎn)其實(shí)也可以根據(jù)項(xiàng)目問很多
準(zhǔn)備簡歷
我認(rèn)為簡歷一定要在學(xué)習(xí)后再去準(zhǔn)備,這樣你在簡歷上寫的東西才在自己的心里有數(shù),才能保證簡歷上的東西自己都能會,其次是簡歷上要包含哪些內(nèi)容,我自己而言:個人基本信息(如:手機(jī)號、郵箱、年齡、住址),可以把自己的 github 鏈接貼上,如果有個人博客網(wǎng)站也可貼上~教育經(jīng)歷、工作經(jīng)歷、個人技能,并不建議寫自我評價~如果有想看的,可以私聊我發(fā)你我的簡歷呀~~~
投遞簡歷,隨緣面試:dog:
這一階段我經(jīng)歷了很多事,所以我越來越認(rèn)為干啥事就隨緣吧,有些事情就好像命中注定的一樣,是你的就是你的,不是你的怎么也強(qiáng)求不來~~
上面說的是廢話,可忽略:dog:
面試這個過程的確是看眼緣的,不過我們自身的發(fā)揮其實(shí)還是占著更大的比重的,所以如何在面試那么短的時間內(nèi)表現(xiàn)出最好的自己尤為重要
hr面試以及談薪
如果我們順利的通過了技術(shù)面試,那么就會來到hr面,hr面試也沒什么技巧,就是機(jī)靈一些我認(rèn)為就好了,其實(shí)我只經(jīng)歷了一次hr面試,從校招到這次跳出,總共就經(jīng)歷了這么一次,這就是我所說的隨緣吧:dog:談薪的技巧我就不說了,我實(shí)在不會,希望有大佬可以教教我(誠懇臉)~~~
背調(diào)
一些公司會有背調(diào),背調(diào)過程首先背調(diào)公司會先發(fā)送背調(diào)郵件,讓你授權(quán),然后填寫一些資料,背調(diào)公司會再次打電話向你確認(rèn),是否可以開始背調(diào),你答應(yīng)了,就開始了~這個過程不建議有造假行為,背調(diào)公司會通過各種問題判斷提供信息的真實(shí)性,以及他們會在過程中要求打你沒提供人的電話,我們只要不撒謊,和領(lǐng)導(dǎo)、hr都提前打好招呼,就不會有什么太大的問題的
面試題分享
我面試了一些個公司,按時間順序排列:順豐同城、頭條、嘀嗒、藍(lán)湖、快手、去哪兒、360、知乎...挑了一些我聽過名字的公司進(jìn)行投遞簡歷,簡歷篩選這一塊還是有很多沒過的,受限于學(xué)歷、工作經(jīng)驗(yàn)只有一年~~~對于前端開發(fā)來說,藍(lán)湖大家都聽說過,對于這次面試整體下來,我對這家公司真的評價頗高,由于藍(lán)湖的技術(shù)棧是vue,而我是react,技術(shù)棧不匹配對于這種規(guī)模的公司而言,可能給不了我太多的適應(yīng)時間,所以把我當(dāng)了備胎(面完第二天hr主動把面評發(fā)給我,直接告訴我備胎了),這種公司不多了,與其相反的是上面某個公司,面試過后hr直接把我微信刪了:dog:
下面按上面的五部分分享面試題(不注明哪些公司,如有需要,可私聊我~):
css部分
1、css中box-sizing的屬性
2、一個元素居中的辦法(不確定寬高的情況下如何用定位的辦法實(shí)現(xiàn))
3、兩欄布局,左側(cè)固定,右側(cè)自適應(yīng)
4、如何理解BFC
5、清除浮動overflow:hidden的原理,為什么可以清除
6、了解postcss嗎
7、less和css的區(qū)別
8、看代碼
<style>
.classA { color:blue; }
.classB { color:red;}
</style>
<p class="classB classA">hello</p>
元素p內(nèi)的文字最終什么顏色
復(fù)制代碼
9、畫一個三角形、扇形,將一個圓分為四部分,對角部分是相同顏色,相鄰部分為不同顏色
JS部分
1、看代碼說輸出,會涉及到Event Queue、Event Loop,面向?qū)ο蟮讓訖C(jī)制,閉包等
2、let、const區(qū)別
3、淺拷貝和深拷貝有什么區(qū)別,實(shí)現(xiàn)深拷貝
4、實(shí)現(xiàn)數(shù)組去重,new Set的數(shù)組去重和自己實(shí)現(xiàn)的哪個性能會更好
5、說出數(shù)組的方法,map和forEach有何區(qū)別
6、說一下跨域,jsonp的原理是什么?node中間件解決跨域問題的原理是什么?
7、Object.create實(shí)現(xiàn)了什么?傳null得到的結(jié)果和普通對象有什么區(qū)別?
8、對prototype和proto的理解
9、call、apply和bind有何區(qū)別,手寫實(shí)現(xiàn)call
10、替代es6中拓展運(yùn)算符傳參的方式
11、如何實(shí)現(xiàn)繼承?class里面super是干嘛的
12、import和require的區(qū)別
13、對promise的考察,then鏈的應(yīng)用
14、實(shí)現(xiàn)一個發(fā)布訂閱,有訂閱(on),發(fā)布(emit),一次訂閱功能(once)
15、實(shí)現(xiàn)防抖節(jié)流,它們兩個之間的區(qū)別是什么?
16、實(shí)現(xiàn)請求并發(fā)限制,具體為:封裝一個函數(shù),傳遞請求并發(fā)的個數(shù)為參數(shù),實(shí)現(xiàn)對并發(fā)請求的限制
17、說說閉包以及垃圾回收機(jī)制
18、利用async和await如何處理異常事件
19、箭頭函數(shù)和普通函數(shù)有什么區(qū)別?如果想改變箭頭函數(shù)中綁定this怎么辦?
20、原生js判斷鼠標(biāo)在一個有對角線矩形的位置
框架部分
1、react中key的作用,有key沒key有什么區(qū)別,比較同一層級節(jié)點(diǎn)什么意思?
2、你對虛擬dom和diff算法的理解,實(shí)現(xiàn)render函數(shù)
3、父子組件之間傳值的方式,組件間傳值的方式
4、如何解析jsx
5、生命周期都有哪幾種,分別是在什么階段做哪些事情?為什么要廢棄一些生命周期?
6、關(guān)于react的優(yōu)化方法
7、綁定this的幾種方式
8、對fiber的理解
9、setState是同步還是異步的
10、redux以及react-redux
11、對高階組件的理解
webpack
1、你都用過哪些webpack的配置
2、在你的項(xiàng)目里面用過哪些優(yōu)化
3、plugin和loader的區(qū)別
4、用過哪些loader、plugin
http部分
1、http與https的區(qū)別
2、http握手的次數(shù)以及過程
3、http的幾個狀態(tài)碼,比如:304、200、500、502、504等
項(xiàng)目
1、項(xiàng)目里面最經(jīng)典的一個問題(好幾家公司都問了這個):在你的項(xiàng)目里面解決了什么樣的難題
2、在你的項(xiàng)目里面如何做的登錄
3、在你的項(xiàng)目里面,如何解決xss攻擊
4、也有一些關(guān)于小程序項(xiàng)目的:
在小程序時候踩過哪些坑
小程序里面存在域的概念嗎
5、還有上面說到的一些知識點(diǎn)會結(jié)合項(xiàng)目問一下
最后
有想了解更多的小伙伴可以加Q群鏈接里面看一下,應(yīng)該對你們能夠有所幫助。