這學期想找一份暑假實習,3.12走內推投了阿里,如今三面已通過去一週多,趁着假期記錄一下。前端
多是由於投的比較早,才投完簡歷過了三天電話就來了,約了次日上午的面試。一面總的來講應該是簡歷初探+基礎。java
面試官聽聲音很年輕,首先讓我作個自我介紹,而後根據簡歷上寫的技能,項目以及比賽問了些問題(感受應該是在覈實簡歷中的東西是否真實吧),好比我提到在實習中使用過 docker,他讓我簡單解釋下 docker 的做用還有怎麼在項目中使用的。git
說實話前面這一段我很慌,由於根本沒問多少前端方面的問題,並且也是第一次面大廠沒有經驗,甚至還問了我對於前端領域的見解這種宏觀問題…我內心一直在想怎麼和我在網上看到的別人的面試畫風不同。面試
不過在把簡歷上的東西基本問了一遍以後面試官說:下面咱們來問一點技術方面的問題(哦原來個人面試纔剛剛開始…)如下按照個人記憶記錄一些問過的問題算法
說一下CSS盒模型chrome
標準盒模型和IE怪異盒模型,而後提到了設置 box-sizing
能夠轉換及一些常見應用場景(這題過)docker
怎樣讓一個元素水平垂直居中編程
(老生常談問題…我分行內元素和塊級元素分別舉出了幾種方法,這題也過)小程序
知道什麼是同源策略嗎後端
知道,同協議同主機同端口,是一個安全策略
那怎麼解決跨域問題
CORS 和 JSONP,或者後端設置代理
知道 JSONP 原理嗎
HTML 頁面中再經過相應的標籤從不一樣域名下加載靜態資源,而被瀏覽器容許,基於此原理,能夠經過動態建立script,再請求一個帶參網址實現跨域通訊
怎麼檢測瀏覽器中的內存泄漏
F12 打開開發者工具看一下內存使用狀況?…(我有點沒懂這道題的意思)
面試官又補充了一下:好比若是要讓你給 chrome 寫一個插件檢測內存泄漏說一下你的思路
(這題我當時比較懵,忘了瞎答了些什麼了,後來網上查了下好像能夠用計數器的方法)
重繪和重排的區別
(過……)
知道瀏覽器事件機制嗎
固然…捕獲階段,目標階段,冒泡階段(順便還提到了一下IE8如下不支持 addEventListener
)
React 在哪一個階段發起
XhrHttpRequest
componentWillMount
知道爲何要在這個階段發起嗎
我當時思考了一下答的是保證數據的加載並正常渲染……
React 中的虛擬 DOM 爲何更快
直接操做 DOM 的性能消耗很大,因此如今的前端框架一個基本策略就是採用虛擬 DOM,React 會先生成一棵虛擬節點樹,而後經過 diff 算法進行同級之間的比較,最後只從新渲染髮生修改過的節點部分,而後 balabala 開始講算法原理
最後咱們來講一下那道經典題 從輸入一個URL到頁面加載完成發生了什麼
(這道題的答案我已經滾瓜爛熟…)後來還吐槽了一下上學期計網期末考試也有這道題,面試官說是,這道題能延伸出不少方面的知識點。
而後面試官又問了一句,你以爲你和別人相比最大的優點是什麼…
(我當時在想是否是面試官以爲我太菜了想最後再問點什麼看能不能讓他轉意,而後我很是混亂的羅列了面試中沒有問到的個人其餘技術棧……後來才知道原來這個通常答的是性格上的優點)
而後面試官扔了個在線編程的地址給我作,5道題,前三道我感受熟悉 JS 基本操做的都能過,後兩道屬於 leetcode easy 級別的簡單算法題。
中途遇到一個小插曲,我作到一半網斷了,再點那個網址 token 無效,然而我題還有一道沒提交,也聯繫不上面試官,內心以爲一面是否是掛了…沒想到過了一個小時面試官又給我打電話過來,我說剛纔網絡很差斷掉了(這學期的路由器常常斷),面試官說沒事讓我給他講每道題的思路,我嗶嗶嗶講了一下子他全程一直嗯嗯,他聽完以後竟然直接給我說一面過了。
小結:基礎部分是真的很基礎…感受仍是運氣不錯問的恰好都是我會的。
二面基本問的是項目和平時狀況,沒怎麼問基礎問題,並且全程氣氛很輕鬆,我懷疑是一面的面試官給個人評價是基礎不錯二面就沒問了…大概記錄一些,第一個問題仍是自我介紹。
我看見你簡歷上寫在微軟學生俱樂部擔任過主席,能給我說一下大家這個俱樂部是幹什麼的嗎
先引用了一下官方解釋「微軟和高校的學術合做聯合項目」,而後說了一下咱們平時有技術培訓,舉辦校內活動,主要仍是以技術交流爲主= =
那你是怎麼當上主席的呢
我懵逼,我很想說是上一屆內定,可是忽然反應過來這個問題應該是在變相的問你相對於別人的優點。吸收了一面的教訓我就開始從技術能力和認真負責兩個方面分(chui)析(bi)我爲何能當上主席
我看你還參加過信息安全競賽拿過獎,能說一下當時是作的什麼嗎
我說這個不是做品賽,是 CTF 奪旗賽,而後說了一些信安比賽相關的東西
你知道前端方面有哪些安全問題嗎
說了 XSS 和 CSRF
你作的這個微博詞雲生成是什麼
經過用戶微博ID進行爬取並根據詞頻生成一張圖片,這個前端沒什麼技術難點,主要是後端,項目就在 GitHub 上
你剛纔說到爬取微博,那你說一下寫一個爬蟲的基本思路
(分析頁面結構,構造URL,發起請求,獲取頁面,,balabala講了一堆)
你在爬取的時候有遇到什麼困難嗎
我說有反爬機制,而後說了一些常見的解決方法
你日常常常寫爬蟲嗎
有數據需求的時候就寫(而後舉例說了下我以前在一個開源項目 RSSHub 中貢獻了一點代碼,就是給學校教務網作了個 RSS 源,實際上也是一個爬蟲)
我看到你以前也有實習,當時具體是作什麼
我說是大二的時候,主要是寫小程序,可是因爲開發組只有4我的因此實際上從前端到後臺到測試所有都有寫…(而後大概介紹了下里面用到的技術棧)
大家怎麼進行多人合做的(由於我提到了 gitflow 工做流
我大概描述了下不一樣的 branch 有什麼用還有怎麼維護,何時該切出一個 feature 或者 bug 分支,何時合併,以及CI CD自動構建等等……
將來的學習規劃
前端變化很快,因此我想一方面從 CS 基礎上增強,另外一方面框架,工具這些,就跟着社區走,多看看最近有什麼新工具,近期的安排是研究 React 的源碼(因爲V16有一些變化我也不是很清楚底層原理因此只敢說「近期安排」,主要是怕他問)
你還有什麼技能是簡歷上沒寫出來的嗎
我說我還學過機器學習…在 coursera 上修過吳恩達的課程當時還寫了博客記錄= =而後還作過一點 Android 開發,不過不是用的 java 是用的 Google 最近一開源框架 flutter,寒假自學的,還在 Google play 上發佈了一個 App…(說實話當時對這個問題有點懵逼,可是感受必須說出點什麼技能連機器學習都搬出來了…不過就算他問機器學習方面的基礎東西我也仍是比較有信心的,上學期期末考試前我但是通宵刷了西瓜書的前 60% 內容…
那你知道如今的 AI 自動生成前端代碼嗎,你對這個怎麼看
(這題我會🙃)
你有什麼問題要問個人嗎
我想知道如今的前端崗一個厲害的本科生須要作到什麼程度,企業比較看重什麼?
最後面試官評價:其餘方面還不錯,就是表達能力有點問題…過~
小結:二面面試官很是友善!全程感受像聊天同樣,後面還給我說 STAR 原則…可能個人表達能力真的還有待增強。