工做吧,我以爲就像談戀愛,不必定是找高富帥或者白富美,互相確認過眼神是對的人就能夠~而面試的自信和對工資的要求,源於你過硬的基礎和平時的思考、積累以及總結~css
8月底離職,實際上是裸辭,固然大概是在原東家我所在的產品項目組的人集體跑路了,因此我也離開了本身所在一年半的東家,畢竟留下來的都是要填大坑的。因而大概花了兩天的時間簡單梳理了一下前端知識和回顧了一下,本身作的產品和遇到的一些問題。而後一個星期面試了大概10家企業的樣子,天天上午一場下午一場,包含餓了麼、小米、大搜車、喜馬拉雅、愛回收等這些大中廠的前端面試(都是上海地區的),後來獵頭有推薦一些外企ebay和其餘一些企業,主要是我的以爲面試了一週累了,因此後來拿到了4家公司電話告知面試經過的消息,而後選了一家本身比較喜歡的公司,就中止面試了,固然面試有被虐的體無完膚,也有比較順利的,故給你們作個小總結分享,但願對你們有所助力面試和對前端的摸索。前端
這裏實際上是這也是面試一般套路,面試官一來90%先來個自我介紹吧,只有10%的面試官一來,直接說談談你的項目吧,一般我會這樣自我介紹vue
xx理工大學軟件工程畢業,上一家公司主要是作xxx的,我在xxx產品項目組裏負責xxx,xxx等前端開發,
主要的技術棧是xxx/xxx,而後本身平時比較喜歡玩前端,會把本身的小想法實現寫寫小DEMO開源在gitHub裏,
也會定時作作總結在本身的博客網站和技術社區裏寫寫技術文章作分享複製代碼
其實這裏也沒什麼,我大概就表達幾點:計算機科班出身、本身熟悉的業務狀況,技術棧和會去研究技術、作分享。固然這裏有不少面試技巧能夠用,我這邊的話,按照本身的實際狀況描述~node
到這裏其實面試官基本上不會抓到不少你自我介紹的面試的點,由於他的眼睛每每盯着你的簡歷,掃描你的簡歷描述,因此我比較推薦簡歷上把你的專業技能寫一下、工做經歷、項目經歷、我的項目、其餘能寫都寫上去,建議儘可能把事情說清楚,多用數據表達,結果導向(固然這塊沒有很好的標準,只是我的的觀點)。若是有不錯的開源項目也寫上在簡歷上去,這邊我就貼上我本身的一些描述吧(若是有須要看我這個簡歷所有,能夠移步我github)react
專業技能這塊,必定不要給本身挖坑,不太清楚的或者忘得差很少東西就不要寫了(我是有給本身挖坑過,寫了些本身拿到的證書,好比中級軟件工程師,Linux網絡管理員認證,而後有一家面試官使勁問我Linux操做,最後一句我告辭,結束尷尬的氣氛)。我的建議沒有十足的對一個技術知識點把握,千萬不要寫精通,面試官看到這個詞語,每每會考考你究竟是不是精通,仍是在吹牛逼。因此寫寫熟練、熟悉、理解、瞭解....等比較謙虛而又不失大氣的詞語來描繪你的技術棧。webpack
接下來我的項目能夠寫一下,若是本身所在的公司不是很知名,和在公司作的項目不是很亮的話,只能靠本身的開源來拯救本身了(ps:其實個人所謂gitHub裏的東西也沒什麼,都是很簡單的小demo,可是掘金友的老鐵們給了很大的支持,目前star累計有300+,能夠直接訪問個人github看看)ios
對於工做機會,主要是一個是技術社區、一個是求職平臺,朋友內推也能夠css3
對於這塊,筆者是沒在不少線上求職平臺,放本身的簡歷,主要是裸辭,因此簡歷仍是要掛一下求職平臺的,主要是掛了boss直聘、獵聘這兩個平臺,其餘就拉鉤....其實均可以。說實話,boss直聘、獵聘這兩個平臺效率很高,你一掛上去基本上天天能夠收到20-30個消息,獵聘上不少獵頭服務也是不錯的,筆者全程沒本身投簡歷,基本上都是獵頭推薦的崗位,安排好的面試時間,boss直聘裏基本上看到大中廠的HR或者前端人員發了信息給我,我纔回信息,聊的不錯給他們簡歷,大概是這樣樣子。若是看到本身喜歡的公司,你能夠本身主動去聯繫這些公司的HR,聊聊~git
對於面試,分要筆試和不須要筆試的,分重基礎的和重業務的考察。廣泛的來說,大廠看重基礎扎不紮實,小廠相對考察對技能的熟練程度多一點。梳理的話,掘金小冊有一個《Web 前端面試指南與高頻考題解析》推薦一看,固然我也買過了,內容還不錯,慕課網也有幾個視頻能夠,可是對每一個基礎知識點要加一些本身想法和思考會更好es6
筆試的話,基本上考的都是css的一些運用,js的一些基礎,一些簡單的算法題,固然也有計算機基礎的,後端基礎,和瀏覽器相關的都有。對於項目,他們會拿你的具體作的項目,由淺入深,剖析你對技術和業務的理解。下面這邊是我總結的我遇到一些筆試和問到的一些問題:
一、CSS選擇權重(你按照正常描述能夠,建議加一些在框架上的好比vue裏的樣式相關的知識點,好比Vue中的scoped原理及穿透方法是否知道?接下來確定就是PostCSS轉譯實現瞭解多少咯)
二、手寫一些半圓,園、三角形、梯形...(注意是手寫出來相似這種,三角形原理[僞類也能夠實現三角形]必懂)
三、sass、less用了那些特性,這兩個有什麼區別,怎麼本身封裝樣式庫(能夠參考element/bootstrap,固然也要知道,webpack打包樣式這塊的知識點咯,好比css-loader style-loader的內容和區別)
四、css3有什麼特性(雖然我面試的時候直接懟面試官了,直接說我接觸前端來就是css3,其實就是那些動畫、透明度,漸變等這些了)
五、盒模型(除了原理和對比,這裏你能夠把Bootstrap攤開了一說就是全局重置樣式裏有box-sizing: border-box;)、清除浮動(幾種清除浮動的方式,大廠的網站是這麼作的攤開來一說,基本上經過僞類)、BFC(原理和建立),z-index層(好比知不知道層優化能夠提高渲染性能,提示:好比GPU加速)
六、佈局:三欄、兩欄,九宮格,垂直居中,水平居中、自適應響應式(解決方案)。那些浮動、絕對定位、flex、表格佈局、網格佈局這些應該都熟練於心,各自的優缺點,固然你也要了解一下雙飛燕、聖盃佈局原理和實現
七、移動端像素知識與Viewport知識,好比怎麼在h5網頁怎麼顯示真實的1px邊框和12px字體大小
....這裏列的只是我碰見的面試和筆試題,其餘還有不少考點...
一、基礎JS-Api,判斷是否是整數,對數組的操做:增刪改查(查重),重組,排序,數組打亂、這些都要求能手寫代碼,固然這些都有好幾種方式實現
二、建立對象、New運算符、事件流(冒泡和捕獲)、原生事件綁定、BOM操做(好比對Ie9一下瀏覽器的判斷和一些操做)
三、原型原型鏈、閉包、類與繼承(在class以前的實現繼承,構造函數繼承、原型鏈繼承、組合方式繼承,各自優缺點)、同步異步
六、es6/7/8的新特性,基礎指令、箭頭函數、字符串模板、promise(原理,運用的場景)、面向對象、數據格式(set/map),async/await(原理,有個cto問我這個函數用babel打包後長什麼樣子)....
七、模塊化、函數式編程,高階函數的使用,柯里化函數,遞歸...
1、加載過程、渲染過程(最好也配合着框架聊)
二、性能優化(加載、渲染),能夠配合框架聊,好比說vue,異步組件路由的懶加載實現原理,GPU加速這塊要了解
三、HTTP(各類狀態碼、什麼無狀態鏈接、管線化、強緩存,問的深的話會問Nginx代理以及面向將來的HTTP的思考等)、存儲cookie、localstorge、sessionstorge,各自的區別,固然對這塊你要深刻一點,好比cookie的工做流程,裏面的參數,爲何呢說不安全,愛回收面試官問個人時候,當時有尷尬的場面
四、跨域:jsonp原理,cors、iframe,postMessage....,固然也要知道前端框架下的跨域,好比vue\node下的跨域怎麼實現和處理
五、前端渲染和服務端渲染(單頁應用SEO, 好比vue2.3 發佈後提出了服務端渲染,Nuxt.js
是否瞭解)
六、前端監控(數據、性能、異常監控,埋點和上報)、請求相關的(好比怎麼在vue下二次封裝axios請求,你會有什麼思考)
一、基本的指令、v-model原理(手寫一個雙向綁定)watch和computed的區別和運用的場景、事件處理/事件修飾符...
二、響應式原理、生命週期,渲染優先級
三、組件,異步組件、父子組件通信,兄弟組件通信,父組件調用子組件的方法,父組件給子組件添加方法,父組件改子組件的樣式,父組件怎麼給子組件傳一個帶$的參數,子組件向父組件聲明本身存在....能夠看看element源碼,裏面不少值得學習地方
三、vue-router,hash和history實現原理,路由懶加載原理,讓你實現一個路由你會有哪些思考
四、vuex,各個api,運用場景,讓你實現一個狀態管理你會有哪些思考
五、設計一個能夠無限嵌套的樹組件,並提供使用文檔
六、開發中有遇到什麼問題,怎麼解決的
...
vue 的話主要考原理比較多,要求看源碼,固然網上有不少總結的很好的資源,正如尤大大推薦同樣
推薦《Vue技術內幕》、《Vue.js 技術揭祕》,固然掘金小冊《剖析 Vue.js 內部運行機制》也寫的很好,值得快速瞭解,但最好是本身去看源碼
這些其實都有問,由於我簡歷上寫的熟悉vue,因此問的基本上都是vue的問題,其餘的都大同小異,好比node兩個比較火的框架(koa/express),webpack內部和配置前端開發環境,時間關係就不一一列了。
一、若是讓你設計一個前端框架你會有什麼思考(一般是CTO會問這個問題)
二、你有什麼問題要問個人?一般我會說想了解一下這個招聘崗位的項目業務和技術棧狀況和團隊狀況,我我的在團隊上是一個什麼角色、簡單對我此次面試作個評價和建議
三、你平時工做以外會作什麼?個人回答基本上比較固定,天天堅持跑步半個小時,週末籃球(有面試官說他也喜歡打球),除了這些就是逛技術社區,看看前端的技術,實現本身的小想法,在本身的網站和技術社區寫寫文章分享....
四、爲何在上一家公司離職?因爲上家公司業務調整,所在項目組人員長期閒置作維護工做,沒有作研發工做,我的以爲沒有體現我的價值,因此離職
五、你以前的同事怎麼評價你?...
面試其實印象也有比較深回憶
1、餓了麼面試,過程很不錯,面試官是餓了麼的一個前端主管,以前參加過他的技術分享沙龍會,整個面試過程很輕鬆,最後面,他說來我來測一下你的編程能力,一個在線編譯器,沒有代碼提示的,我是一個代碼提示依賴的人....結果是是涼涼的,面試完後,他和我聊了許多,我也把來以前準備的測出的餓了麼官網和app前端上的幾個bug和一些優化的地方,以及他們開源的做品進行本身見解和他交流,他有推薦看看《重構》《代碼整潔之道》《代碼大全》,有留微信,說能夠半年後再過來面試交流,他也會把我提的相關問題和優化和相關讓部門處理~
2、愛回收,這個面試是比較糟糕的,準備不充分,很知識點知道,可是沒有了解很深,兩個面試官輪流面試我,致使一個面試官給個人評價是,知識廣度有,深度沒有。其中另一個面試官聊到最後,有問我是哪裏人,而後發現是一個老鄉,老鄉對老鄉的情懷,最後他還和我梳理了前端的知識,站在一個比較高的角度和我聊前端,也互留了微信,結果不用說了涼涼~
3、前端知識零零碎碎,其實吧,大多數看看知識點就ok了,但必定是要有本身思考去回答問題,若是隻是按照別人總結的可能你消化不了,若是你回答的問題和百度到的同樣的,面試官大多數會以爲不太好,因此仍是要本身理解的程度上去回答問題。代碼相關的必定要是本身手寫,並且儘可能不要依賴代碼提示(餓了麼涼了也是有這一個緣由)
4、前端知識、框架都不少,我的以爲其實不須要都熟練,深刻理解一兩個技術棧就ok了,前提基礎必定是要紮實的,就像愛回收面試官對個人評價:有知識廣度沒有知識深度,雖然這個評價有點狠,可是確實也鞭笞着我,要回歸基礎,迴歸JS和數據結構,再讀前端框架源碼,和玩轉node~
5、遇到面試中不清楚或者不知道的知識點,你不要慌,先來一個尷尬而不失禮貌的微笑,而後說在這塊知識其實我很早以前是有看到過的,如今因爲面試有點慌,短期內不能總結一個很好的答案,但我是有思考的~說一些相關的東西,若是實在是不清楚,就說不清楚。每一個人都有知識盲點,面試官也不是說要問道你什麼都會,固然若是你整個面試過程,問的問題你都知道,你心裏裏以爲都能回答的很好,但我也不建議你所有都回答的很好出來,留一兩題表現的不是那麼完美的回答便可,道理很簡單,一我的永遠不要表現太強勢,這樣可能有些面試官會以爲你有點「狂」,不太好相處~懂我意思吧
6、前端崗位是個敏感的動物,能夠平時逛逛大廠的網站和看看他們的產品,把有趣的地方,學習和模仿着寫對應的代碼,固然技術社區和牛人博客常看看,瞭解各個常識,好比最近vue/npm/node版本(穩定)更新到多少了,更新了那些東西瞭解一下。面試的自信和對工資的要求,源於你過硬的基礎和平時的思考、積累以及總結~
7、以上面試知識點梳理和答案,js筆試部分我已經整理出一個文檔,其餘的知識點也有部分整理出來了(可是不必定是正確和最佳答案),包括我本身的簡歷,若是感興趣的均可以移步在我github倉庫
Front-end-notes 上,也能夠 在線文檔網頁 當字典查看,持續更新...
寫的倉促,描述有誤之處,謝謝你們指正,也期待和你們在評論區或者在github提交issues交流~最後祝願各位同窗在求職面試中能夠收割心儀的offer~
ps:若是有前端同窗想換坑位,簡歷到我我的郵箱:codercao@foxmail.com,我這邊評估ok的話,能夠內推,固然其餘公司能夠幫你推薦,座標限上海~
瞭解掘金秋招求職徵文活動更多信息👉秋招求職時,寫文就有好禮相送 | 掘金技術徵文