金九銀十,又是一年跑路季。先介紹下我的狀況,一年半經驗,計算機專業的渣渣大專。憑着對前端的熱愛,基本天天都會抽點時間來學習,基礎還算能夠。其實上家公司呆着仍是挺舒服的,沒有加班,惟一很差就是不偏技術,業務也相對簡單。考慮到將來的職業發展,最終仍是選擇跳出這個溫馨圈。html
9月中旬離職,在上週面試了有7家。其中一家是優居網,此次面試過程也是比較有趣的經歷,由於面試官基本不問前端的問題,有被毒打到。後面才瞭解到面試官是全棧偏後端的。因此這篇分享對於前端面試可能用處不大,小夥伴就當是看個熱鬧拓展知識。前端
這題也是老經典題目了,相信很多小夥伴也看過相關的文章。vue
大概過程是:webpack
面試過程當中可能有點緊張,後面頁面渲染那部分沒說出來。程序員
原題的描述是,爲何在瀏覽器上輸入http://www.baidu.com
會跳轉到https
下對應的域名,這樣作目的是什麼?web
其實很簡單,跳轉是服務端作了重定向的處理,目的是爲了網站的安全性。面試
window.open
打開的網頁能夠經過window.opener
屬性獲取到來源網站的window
對象,或者經過document.referrer
獲取到來源網站的地址。因此在使用window.open
時,能夠把第三個參數設置爲noopener=yes,noreferrer=yes
。算法
這個扯了一下,沒答到點上。數據庫
正確答案:GBK包含所有中文字符;UTF-8則包含全世界全部國家須要用到的字符。UTF-8是國際編碼,它的通用性比較好,GBK是國家編碼,通用性比UTF-8差,不過UTF-8佔用的數據庫比GBK大。小程序
請求行(請求方法、URL、HTTP協議版本)、請求頭、請求體(post傳輸的數據)
大概說了強緩存使用的字段,使用緩存的過程。協商緩存的字段不太記得,模糊的說了下,比較重要的就是協商緩存的兩種策略,一種是根據文件修改時間對比,一種根據文件內容的哈希值來對比。
content-type
,以及一些自定義頭。工做中用到的廣泛就這些。
http2中新增「多路複用」的特性,基於「二進制分幀」把字節流數據分割成帶有編號的碎片傳輸,服務端接收到數據後,根據編號合成一個完整的數據。
應用場景沒想出來。
只瞭解到傳輸層是基於UDP協議。
https比http安全是由於在傳輸數據時作了加密處理。
回答到瀏覽器生成隨機數給服務端構造對稱加密算法,而後是對稱加密和非對稱加密的配合使用,數據使用對稱加密,而對稱加密的密鑰使用非對稱加密。
在數據加密前,還有證書驗證的階段,忘記答上了。證書內的公鑰是用來加密隨機數發給服務端的。
工做中沒有應用過,可是知道AES對稱加密。
能。由於是用戶主動進行操做,抓包工具能夠配置用戶信任的證書,因此數據能夠通過抓包工具被獲取。
jwt能夠用於驗證用戶身份信息,和傳統的token做用差很少。
傳統的token是服務端將用戶信息進行MD5處理髮送給客戶端,客戶端在請求時帶上token驗證。由於MD5是不可逆的,服務端須要去數據庫查詢相關用戶信息,再進行一次MD5,用該MD5和客戶端發來的MD5進行對比。
而jwt是不須要服務端通過數據庫查詢的操做,jwt有對應的加密解密算法,服務端拿到jwt後經過密鑰解密能夠把其中的用戶信息拿到。
有聽過,可是沒了解,沒答出來。
resfulApi是一種接口設計規範,使用get(獲取)、post(新建)、put(更新)、delete(刪除)等語義化的方法去描述請求。url裏會帶上版本號和資源名,資源以複數形式描述。
graphQL是一種用於api查詢的語言,能讓客戶端只獲取所須要的數據。在開發中,後端返回的數據中會包含一些前端不須要的內容。使用graphQL能夠把獲取數據的主動權交給前端,經過數據模型去規定後端返回的數據,只取所須要的數據,減小接口的冗餘數據。
懵,沒答出來
二面就簡單問了下Vue生命週期,後面都是圍繞項目去問。並且我發現面的好多家公司都會問性能優化。這裏我也給點小建議,能夠從這幾個方面去回答:
三面是老闆面,不聊技術,基本就聊一些經歷,性格,對職業的規劃,對公司的指望之類的。從交談中得知,老闆是程序員轉行,曾經也是個全棧工程師,在阿里待過。而後才知道這家公司成立不夠半年,應該是優居網旗下的公司吧。問了老闆對公司的技術團隊規劃,目前是隻有兩個全棧,技術團隊正在擴張,將來會保持在十多我的左右。
雖然最後拿到了offer,但仍是選擇不去。主要是技術團隊和money的問題吧,我的傾向穩定一些的公司。
本文中的一些問題回答的不是很全面,有感興趣的能夠本身去查閱相關的資料。
面試前也作一些知識複習的總結:
但願正在面試的小夥伴不被毒打,早日拿到心儀的offer。