2020 前端面試復習大綱之N+公司感悟

看過很多篇面試經驗的分享,大多都是關于面試考察問題的總結。比起問題總結注册送28体验金的游戏平台,我更想結合自己的面試經驗談談我對面試的理解。

總共面了大大小小20家公司,總結下從面試的準備階段到面試結束中遇到的問題,希望能幫到正在或準備找工作的同學。

用一句話概括找工作的感受:重在基礎(技術知識及原理),豐富項目(項目經驗及細節),理解全面(技術及產品),積累是前提(工作中積累和總結),會說很重要(表達到位)

面經可以作為公司面試范圍的參考,但不代表全部,因為每個人的情況都不一樣,所以考察的內容也不完全相同。有的人簡歷上有寫node,就會問到node;有的人簡歷上寫到redux,就會被問到redux。如果你這些方面確實沒看過,可以如實回答。因此不能把面經當作唯一參考,只復習面經出現的問題,還是應該根據自己簡歷上的內容再進行擴充學習和準備。

有的同學不知道該怎么準備,下面就結合面試的基本流程講講每階段怎么準備,同學可根據這幾方面充分準備。

簡歷

簡歷是公司的敲門磚,只有通過第一步的簡歷篩選,才能到下一步,所以首先應該把簡歷寫好,不要出現錯別字或者語句不通的地方。如果有條件注册送28体验金的游戏平台,可以讓有經驗的朋友幫你看看簡歷,力求把簡歷改到。

網上有太多教你如何寫簡歷的文章,百度搜索如何寫簡歷,結果的前幾頁每篇多多少少都有不一樣的地方。有的人推薦你把技術點羅列出來,有的人則不推薦,看到最后你可能都困惑了。

從我的角度來看,這些要根據你自己的實際情況區分。比如技術點的羅列:如果你的項目經驗能充分體現你所涉及的所有技術點,你可以不寫;但如果不能充分體現出來,羅列出來就很有必要。這些問題你有必要自行斟酌取舍。

但是歸根結底,簡歷的核心應該是你的能力體現,是展示你能力的地方,所以要能把核心表達出來。

下面推薦三篇我認為比較好的介紹如何寫簡歷的文章。

基礎知識(一面)

基礎知識通常會在一面中考察,包含從html(5)、css(3)、js到node、webpack、vue、react所有可能考察的知識點。但通常不會考察的太深入,是對知識廣度的了解(但不代表你只需知道是什么)。

基礎知識不僅要知道是什么,更要明白怎么用,為什么這么用(深入理解)。死記硬背能應付一時,但遇到需要深入談談的面試官,死記硬背真的作用不大。所以每一個知識點能做到理解透徹,講的明白。

有的面試官可能對某個知識點稍作變形,比如問你數組的slice方法,然后讓你自己實現,所以不能只會用。

更重要的一點,對基礎知識的理解深度,影響到你的職級評定(當然這個評定也會根據工作年限)。舉個例子,同樣一個知識點,如果你知道是什么:初級水平;如果能知道怎么用:中級水平;如果知道原理并能自己實現:高級水平;再進一步,如果知道背后牽扯到其他的哪些知識點并能對這個知識點有自己的見解:專家水平。

這個可能有點夸張,不一定就能達到專家,但是你應該明白我的意思,對一個問題的理解深度,決定你的水平,影響你的級別。

比如我在面試中就遇到面試官給我了一道基本的變量聲明以及函數調用的題,雖然簡單,但是要求是把從創建到結果輸出過程中盡可能的所有包含的知識點說出來。所以同學們在準備階段有必要把每個知識點都搞清楚,講的明白。

下面是一個博主總結的基礎知識點(包含css,js,js高頻手寫題,vue題,以及http、瀏覽器題目),我覺得總結的很好,也是面試中常會出現的問題。大家有必要每個點過一遍,但是一些解答不是很充分,在此基礎上補充了自己面試中遇到的基礎問題以及對應的比較好的問題解答。

某博主面試總結:

JS篇

繼承:

原型鏈:

this指向:

設計模式:

call, apply, bind, new實現:

防抖截流實現:

let, var, const 區別:

event loop:

promise使用及實現:

promise并行執行和順序執行:

閉包:

垃圾回收和內存泄漏:

數組方法:

數組亂序, 數組扁平化:

事件委托:

事件監聽:

事件模型:

axios:

typescript:

CSS(3) & HTML(5) 篇

flex布局:

垂直居中:

清楚浮動:

bfc:

三欄布局:

兩欄布局:

動畫(考察頻率很高):

盒模型:

HTML5新特性:

Vue篇

vue數據雙向綁定原理:

vue computed原理:

vue編譯器結構圖:

生命周期:

vue組件通信:

mmvm模式、mvc模式理解:

vue dom diff:

vuex:

vue-router:

React篇

dom-diff:

列表key屬性:

jsx原理(createElement):

react-router原理:

redux原理:

生命周期:

react setState:

react組件通信:

性能優化:

網絡篇

HTTP1, HTTP2, HTTPS:

瀏覽從輸入網址到回車發生了什么:

前端跨域:

瀏覽器緩存:

cookie, session, token, localstorage, sessionstorage:

xss和csrf攻擊:

狀態碼:

TCP連接(三次握手, 四次揮手):

工程化

工程化這方面由于自身經驗有限,所以只羅列了自己面試中被問到的一些問題,不代表全部。

webpack loader & plugin:

性能優化:

nodeJs:

錯誤監控:

算法篇

作為前端雖然對算法要求不高,但是刷的多了,慢慢對前端有新的認識:越是厲害的前端對算法、數據結構、系統的要求越高,所以掌握好算法是有必要的。

前端面試基本上前兩輪都會問算法,但不一定就是leetcode上的算法題,有可能考察一些具體問題的實現,比如我被問到類似https://www.cnblogs.com/weiyf/p/5996671.html這個問題(但是是居中顯示)、數組轉樹https://www.cnblogs.com/mengfangui/p/10494601.html等這類問題。這類題我覺得還是比較容易的,只要平常代碼寫的多。

除此類問題外,就會考到leetcode上的算法題。每個人遇到的情況都不同,就算是同樣面試頭條,有的人問的就比較簡單,有的人問的就比較難,還有人可能不問。所以面試不僅是靠準備,也有一部分運氣成分,但前提是你得準備好(不要心存僥幸!!!萬一問到了呢)。

一開始刷算法確實很累,10道題沒幾道能一下想出來的。但是不要緊,刷多了就有感覺了,要堅持下來。每天可以用簡單題先”熱腦“,找點感覺,如果能解出來,就會有信心了,然后嘗試中等難度和高難度。不推薦開始就刷難題,做不出來的話會備受打擊。

算法不求全部刷完(如果時間充足就多刷,平均是100道左右)重點是總結規律。easy,medium,hard都要刷(hard可以少刷,但不能不刷)。要把每種數據結構都刷到(不要心存僥幸!!!我就被問到雙鏈表,之前沒有刷,結果尷尬了),重要題型要重復刷,嘗試多種解法,總結各類題型規律

leetcode:

經典排序算法:

算法總結: [](題解 - 目錄.md)

算法總結2:

鏈表題總結:

動態規劃講解:

二叉樹:

項目經驗(二面)

項目經驗很重要,也是作為面試考察以及職級評定的標準,對一個問題能否有自己的理解,并給出具體的實現方案是決定你是否能通過面試的重要一環。

一般都會或多或少問你一些技術上的問題,但相較于一面的廣度來說更傾向于深度。比如mvvm模式是如何實現的,setState原理,可能會讓你寫代碼來實現,但一般都是說出思路即可。當然如果你能把代碼流暢的寫出來,對你的評分肯定不會低。所以這也是我說的理解程度影響你的評級。

其次,會問的問題包含但不限于

  • 項目開發流程
  • 技術架構
  • 說說做的的比較好的項目(突出你的貢獻的地方)
  • 你擔任的角色(多見于三面)
  • 項目中的收獲
  • 項目亮點
  • 項目中遇到的難點
  • 簡歷中的某一個點干什么的,怎么實現的(比如用了css,具體某個屬性和值要能說出來),如果讓你自己做你會怎么做 (根據你簡歷問)
  • 組件設計與實現思路
  • 兼容性問題
  • 底層原理
  • 性能優化
  • 工程化
  • 前端學習規劃(多見于三面)
  • 算法(有的面試官會問)

技術架構:

項目亮點:

項目中遇到的難點:

項目經驗的文章:

領導面(三面)

對于所面試的部門和產品要有充分的了解,涉及的問題包含但不限于

  • 職業規劃
  • 產品理解
  • 項目理解
  • 技術廣度
  • 學習方式
  • 穩定性
  • 工作方式等

具體來說就是對于你現在以及未來的考察,根據你對技術的廣度與深度的認知以及項目的理解(包含項目開發,多人協作,工作方式等)結合學習規劃、穩定性等問題,對你現在以及未來潛力進行評估,判斷你是否適合所面試團隊并能為團隊帶來貢獻。

這些問題要提前想清楚,不要回答的模棱兩可,最后可能把自己坑了。

這一面很少考察算法以及技術和項目,可以和面試官充分交流,了解所在團隊工作習慣、學習氛圍、所要做的項目等。畢竟之后你要來所面試的團隊,有必要提前了解清楚,避免之后不適應。

HR面(四面)

聊天

和hr聊天我認為也是需要技巧的,有的該說,有的不該說。如果非常期待進這家公司,就要表現出誠意,之前我在和一家HR聊天的時候,當問及還有其他offer沒,我說了一堆在面的公司,現在想想,覺得不是很好,如果非常想進一家公司,至少得表現出在等著這家公司的答復,讓別人感受到你真的想進。

其次,有的問題,比如問你績效、離職原因之類的,能快速回答,如果想了半天,或者含含糊糊,別人有可能認為你不誠實,最后有可能把你拒掉。這些問題要提前準備好,給你朋友說說,如果別人認可你說的,至少說明你的理由能說得過去。所以,在HR面之前這些問題都要提前想清楚。

談薪

這也是面試考察的很重要一點,是否能對自己有正確的判斷。要根據自己的實際情況(包括面試情況以及工作年限)以及市場相應職位薪資來要。一般來說是漲幅10%-30%,但也不是絕對,你可以要50%、60%,甚至double,但要結合市場行情以及自身情況(包括面試情況以及工作年限)。

舉個例子,如果感覺面試的很好,可以嘗試按市場高點的價位來要(50%, 60%);如果差了點,適當降低10%-20%(30%,40%);如果再差,就再降點。**切記薪資不能亂要!!!**有一家還挺大的公司要的太高了(60%,當時面試的自我感覺不是特別好,但看了別人說的,要高點會被砍,所以就直接報了這個價),結果直接被拒了:(。

當然每個公司情況都不一樣,有的公司最高能double,有的可能最高才50%,所以這些問題都需要提前了解清楚,可以問問有了解的朋友,或在相關平臺咨詢。

總結的話:不要看別人要多少你就要多少,要根據自己實際情況,每個人的自身水平和面試情況都是不一樣,別人說的也不一定準,可以參考。在面試后自我評估基礎上,增加幅度或減少幅度,但切記不要亂要!!!,對方很可能不和你談,直接把你拒了(因為不止你一個人投這個崗位,還有很多人和你競爭,別人性價比你高,除非你很自信你的優勢比別人高很多)。如果在和想去的公司hr談之前能有別的offer,這樣就可以用這個offer來argue。

其他補充

大公司與小公司面試區別

從我面的小公司和大公司來看,大公司套路少,流程基本一致,一面基礎知識,二面項目經驗,三面領導面,四面hr面。

而小公司一般對項目細節抓的深,上來一面就可能開始問你項目經驗,包括用到的什么技術,怎么實現的,具體原理是什么,兼容性問題有哪些,設計模式在開發中怎么用的,某個模塊或頁面設計思路及實現方案。對具體實踐,技術實現的要求比較高。

所以面試大公司和小公司都要分別做好相應的準備。

其他推薦的面試經驗總結

JS問題總結:

基礎考察點:

前端面試總結:

前端知識點總結:

前端知識點總結:

這個博主寫的三篇文章都值得前端的同學們反復閱讀,不僅僅是為了面試,也是對自己職業的規劃與反思:

項目經驗:

總結 + 反思

從剛開始第一家面試被虐得體無完膚到后來面試都說出答案和自己的理解,其中經歷了痛苦、煎熬、不相信自己、快要放棄到最后有所頓悟、收到多個offer,所以只要堅持下去,前方總會有希望。

總結來說,面試 = 基礎知識 + 項目經驗 + 技術理解, 產品理解 + 表達技巧 + 運氣,我們控制不了運氣,就得在其他方面多下功夫,每一部分都要能充分的準備,深入的準備。當然表達技巧這個要長期鍛煉才能提升,不過我們可以對每一部分都提前進行講述練習,并進行一定量擴充。

目前來看,面試對知識點考察的越來越細,有的需要你能寫框架的某個實現原理(源碼的了解程度),所以每一個考察點都要深入的學習和理解,只死記硬背是沒有辦法應付全部面試的。未來可能面試就要能手寫框架了。

雖然我們面試一方面是為了找一份不錯的工作,或者能夠升職加薪,但是從另一方面來說也是對我們自身的考察。而我看來,面試成功的前提不僅僅在于面試前的學習,更重要的是平時工作中對于每一個知識點、每一次項目開發、每一個遇到的難點的積累、實踐與總結,僅僅靠面試前的突擊是無法走的更遠的。

想要走的更遠,就必須抓住每一次機會注册送28体验金的游戏平台,不能放過遇到的問題。在每一次項目中提升自己,突破自己,并且要記得總結反思,希望所有的技術同學能共勉。

以上就是我對于面試的看法,如果有其他問題,歡迎大家留言。

原文鏈接:

上一篇:進無止境,AntV 統計圖表 G2Plot 1.0 發布
下一篇:vue-formulate解析

相關推薦

  • 🔥 2020年從基礎到進階,測試你有多了解 JavaScript,刷新你的知識!🚀

    【譯】JavaScript 進階問題列表 從基礎到進階,測試你有多了解 JavaScript,刷新你的知識 答案在問題下方的折疊部分,點擊即可展開問題。 1. 輸出是什么? A: Lydi...

    3 個月前
  • 高考七年后、工作三年后的感悟

    這是一篇寫在我的微信公眾號【若川視野】的文章,同時也發布在。 高考七年后、工作三年后的感悟(https://mp.weixin.qq.com/s?biz=MzA5MjQwMzQyNw==&m...

    10 個月前
  • 都2020年了,你應該知道如何手寫Call、Apply、Bind了吧

    導讀 作為面試中面試官最寵愛的一個問題,在這里進行一個詳細的介紹,大家重點要放在理解,而不是背。 寫的不好或不對的地方,請大家積極指出,好了,話不多說,我們“圓規正轉” 一、手寫實現Call ...

    3 個月前
  • 逆戰2020年你不能不知道的webpack基本配置!

    前言 很開心今天分享一篇自己步入開發以來經歷webpack事兒總結了一些知識點 分享給廣大前端愛好者,希望對大家能有所幫助~ 😀在很久很久以前,在我們前端還只是頁面切圖仔的年代,我們開發一個...

    1 個月前
  • 達標率85%!2020年首份Top1000應用綠標評測報告發布

    基于《軟件綠色聯盟應用體驗標準2.0》,軟件綠色聯盟聯合華為終端開放實驗室共同發布2020年首份國內千款主流應用達標評測報告。報告顯示,2月份國內千款應用中綠色應用占比為85%,結合近幾期綠標評測數據...

    10 天前
  • 滴滴 CML (Chameleon) 周報 2020'' | 3.2 - 3.6

    CML,一套代碼運行多端,一端所見即多端所見GitHub: https://github.com/didi/chameleon 最新動態 【版本發布】內部 6.2.0 版本發布,內置支持頭條小程序...

    21 天前
  • 數組的使用總結— (js基礎復習第2期)

    前言 數組真的是每天用了,但是有很多方法都是記不住,總是要百度查,很煩,所以才寫了個數組使用總結,有什么不對的希望大家指出來。 思路 先看看這些問題都記得很清楚么? 1. 創建數組,怎么...

    1 年前
  • 數組方法-ES5(復習筆記)

    ES5 1. 從數組末尾添加參數,返回修改后數組的長度;(可傳多個參數) 棧方法(后進先出) var animals = 'cat','...

    1 年前
  • 拒絕劃水之:JavaScript字符串知識點復習

    1.JavaScript字符串認識及了解 1.1 JavaScript字符串是什么: JavaScript字符串就是用來存儲和處理文本 1.2 字符串可以用來存儲一系列的字符 1.3...

    7 個月前
  • 技術胖1-4季視頻復習— (讀文筆記第2期)

    輸入 技術胖視頻14季(https://jspang.com/archives/) 總記不太住的 1. 模板的使用,template 2. component 的注冊、傳值、父子組件 3...

    1 年前

官方社區

掃碼加入 JavaScript 社區