話不多說,直接上題。(時間周期太長,可能不太全了)
面試周期:從投遞簡歷到收到offer大概經歷了一個月左右,所以最好還是不要裸辭,不然心態會裂開。
筆試題:(二面、三面后的筆試)
1、手寫bind
2、手寫簡版promise,基礎架子,不用寫all、race等api
3、爬樓梯,leetcode-cn.com/problems/cl…(后面面試官問到了尾遞歸優化)
4、猴子吃香蕉leetcode-cn.com/problems/ko…
5、回文字符串個數leetcode-cn.com/problems/pa…(這道題出現頻率很高,朋友面試的時候也遇到了,最長回文子字符串)
一面
一面是電話面試,面試問題(可能記不全了):
1、各種css js基礎相關問題,
(1):各種原生方法的使用,基本類型和引用類型,es6中的set(集合)和map(字典)的使用和對應的數據結構。
(2):sort的實現,內部用的插入排序和快速排序(根據排序的量級用不同的方法)
(3):bfc布局規則
(4)項目怎么做的移動端適配?flexible原理(1px問題,通過viewport)
2、說一下原型鏈,原型鏈實現繼承。
3、http和tcp協議?
4、緩存相關(對比緩存?強緩存?對應請求頭)cookie有哪些屬性?
5、簡單請求?跨域?
6、vue中nextTick的實現,結合瀏覽器事件循環機制說一下?
7、說說commonjs和esmodule?
6、最近在看什么新東西嗎?vue3 beta(其實看得很少,二面問了,自己給自己挖了個坑)
二面
二面是視頻面試(面了兩個多小時,中途換了個面試官)
1、項目相關問題,項目還是需要好好准備。問得有點仔細
遇到過哪些難點?怎么解決的?做過哪些優化?優化有量化嗎?用過哪些loader?plugin?你寫的這個插件實現了什么?怎么實現的?sourcemap原理知道嗎?(shabi了,因為瞄過一個博客,說知道一點,說了個vlq編碼,然后被問得很尷尬,不會直接說不會就好)
2、http和tcp、https、http2(隊頭阻塞?解決了哪些問題?哪有哪些問題未解決?tcp和udp?)。摘要算法和對稱加密、非對稱加密大概說一下?摘要和加密的區別?知道哪些加密算法?websocket的使用場景(socket.io降級)?
3、前端安全防范措施?xss攻擊和csrf攻擊?
4、怎么看待virtual dom?ast語法樹了解嗎?vue-loader做了哪些事情?vue diff?vue computed和watch區別?computed怎么實現的緩存(dirty)?vue3雙向數據綁定實現?createRender?和vue2有哪些不同,提到了函數式編程,說下對函數式編程對的理解。(答得很垃圾,vue3了解不多,尤大的直播沒認真看)
5、對MVC (react) MVVM(vue)的了解
6、node相關問題,node的事件循環機制?stream兩種模式的區別?看過koa源碼都會覺得和express有很大不同,說一下?
7、你寫過小程序,說下和寫vue有什么區別?然后我說setData會有性能問題(react中setState會有這個問題嗎?又給自己挖坑了) 說下jsbrige?
8、時針和分針的夾角?
9、為什么要離職?怎么學習的?有什么問題嗎?
三面
三面視頻面試,
1、項目相關問題?
2、和很多二面的問題類似
3、為甚么要有同源策略?dns劫持?
4、團隊協作,以前的開發流程?
5、職業規划?
6、有什么問題嗎?
hr面
。。。。。
關於面試的一些經驗分享
面試造飛機,入職擰螺絲。裸面是不可能裸面的,這輩子都不可能再裸面的了!因為它會嚴重打擊你的自信心,面試官能把你虐到懷疑人生。作為一個工作了將近 3 年前端er,來簡單聊聊自己面試所做的一些准備。
一、簡歷篇
如何寫好一份簡歷
1.確定 HR 需要從你的簡歷獲得什么信息?
-
經驗 - 相關工作經驗,能否盡快上手項目,降低培訓費用
-
技能 - 技能點及其掌握深度,能否勝任本職工作
-
潛力 - 學習能力,主觀能動性,能否在未來為組織承擔更多
-
動機 - 人員穩定性,是否會在公司待長久
2.STAR 法則
-
Situation - 任務產生的背景
-
Task - 我的任務
-
Action - 對於這個任務你采取了什么行動
-
Result - 你采取的行動得到了什么結果(盡量用數據說話)
-
STAR 法則可以用在工作經歷和項目經驗中使用
3.簡歷的各個組成部分
-
個人信息
-
基本信息(姓名、年齡、郵箱、手機號)
-
教育背景(學校、專業、學歷)
-
工作經歷
-
公司簡介(組織遠景、主營業務)
-
團隊目標
-
你的目標及任務
-
你采取的行動
-
取得什么成果
-
工作技能
-
慎寫精通(除非你是真的很牛掰)
-
技能名稱盡量寫官方專業名稱,最好是寫出技術棧的組合來。
如:熟練使用 Vue + Vuex + Element UI 開發項目,Webpack 構建項目,Nuxt.js 服務端渲染 -
項目經驗(最好在留一個比較出彩的項目不要寫在簡歷上,等面試的時候再細說這個項目,給面試官留個驚喜吧)
-
項目描述(一句話描述項目背景 + 業務)
-
我的職責(負責做什么 + 怎么做的)
-
工作成果
列一下簡歷中自己認為面試官會提問的問題並自己回答一遍
列一下回答不出來的相關技能
二、面試題篇
1.開放性問題
-
准備自我介紹
-
個人基礎信息(姓名、畢業年份、學校專業、學歷和所在公司)
-
項目(經驗 - 是否有相關的工作經驗,一般會展開)
-
技術棧(技能 - 盡量說技術棧的組合)
-
重要的經歷(潛力 - 挑重要的說)
-
離職原因(動機 - 盡量說個人的職業發展)
-
項目中遇到的難點,怎么解決的
-
自己認為做的最好的地方(最大的貢獻)
-
自己的優缺點
2.專業技能
一般來說,面試官會根據你的簡歷內容去提問,但是技術基礎還有需要自己去准備分類,形成自己的知識體系的。簡單列一下我自己遇到的一些題
-
HTML+CSS
-
JavaScript
-
前端框架
-
前端性能優化
-
前端監控
-
模塊化+項目構建
-
代碼管理
-
信息安全
-
網絡協議
-
瀏覽器
-
算法與數據結構
-
團隊管理
最近得空把之前遇到的面試題做了一個整理,包括我本人自己去面試遇到的,還有其他人員去面試遇到的,還有網上刷到的,我都統一的整理了一下,希望對大家有用。
其中包含HTML、CSS、JavaScript、服務端與網絡、Vue、瀏覽器等等,免費分享給大家,有需要的朋友【點擊我】免費獲取,算是一個感恩回饋吧。
由於文章篇幅有限,僅展示部分內容



策略技巧篇
策略
先面 90% 不是自己的目標公司,試試水,總結套路,再去面自己的目標公司
怎么說清楚一門技術
技術產生的背景和原因
-
它要用來什么問題
-
為了解決這些問題,技術上要怎么實現什么目標
怎么使用它來解決這些問題(技術規范和實現原理)
-
怎么使用
-
實現上述技術目標,要采用什么原理和機制
有哪些使用場景,不同的場景下怎么使用才是最好的
-
場景1 - 技術方案1
-
優點
-
優點1
-
優點2
-
缺點
-
缺點1
-
缺點2
-
場景2- 技術方案2
-
優點
-
缺點
...
市場趨勢和技術演進趨勢
-
有誰在用,技術前景怎么樣
-
技術方向
未完待續...