阿里盒馬前端校招面試,你要的答案來了

2021-02-09 前端迷

最近有一篇阿里盒馬前端面試題被各大社區轉載,而且據稱這是阿里校招面試題,我看完以後,簡直驚呆了,打死都不信。今天特意針對他們發的一面,把對應的答案整理了一些。

請先做個自我介紹

我是河畔一角,11年畢業,畢業後先從事JAVA方向開發,後在13年轉為前端。13年主要從事XXX,經過3年的時間磨練,讓我對前端有了全新的認識。16年進入到樂視,從事XXX,17年進入到松果出行,從事XXX,並從0搭建前端團隊,並主導各個前端一線項目研發。

提交表單,常用的方法有哪些?應用層,通信層發生了哪些過程?

實際上可能考察輸入url後請求響應過程

POST和GET的區別,列舉一下GET通過url明文傳輸,POST通過body傳輸,本身都不安全,因為HTTP就是明文傳輸。

HTTP請求Content-Type值:application/json、application/x-www-form-urlencoded、multipart/form-data

http常見的響應碼,拒絕服務資源是哪個?狀態碼作用1.x已接收請求,正在處理2.x請求成功3.x重定向,需要進一步處理4.x客戶端錯誤5.x服務端錯誤

常見狀態碼:

304 Not Modified(通常是在協商緩存中表示本次內容未修改)403 Forbidden - 請求被拒絕(本題答案)500 Inter Server Error - 服務端異常503 Server Unavailable - 服務不可用前端鑑權了解過嗎?

鑑權主要分為四種:

HTTP Basic Authentication (HTTP基本認證)

我們普通網站常用的認證就是session-cookie的方式,用戶向服務端發生請求,服務端會創建session並保存相關身份信息,並向客戶端下發一個sessionId,大家如果用心的話,會發現跟JAVA交互的時候,瀏覽器會有一個JSESSION_ID,跟PHP交互的時候,會有一個PHPSESSION_ID;後面的每次請求,客戶端都會自動帶上這個cookie跟服務端通信。

實際上大家要明白每一種方式的作用;SSO主要用來做單點登錄;OAuth主要用來做第三方網站授權;JWT就是一種便於擴展的跨域認證解決方案,通常會考察這個。

關於JWT我這兒不展開講,給大家推薦阮一峰的講解:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html

OAuth2.0原理

講原理主要是讓你對這個過程做梳理,並不要求對源碼過程做剖析,所以可以通過一個簡單的流程來進行回答。我通過微信的授權登錄來給大家做講解:OAuth2.0是一個開源的授權認證方案。當我們登錄一個網站時,如果想要通過微信做授權登錄,從而獲取微信的用戶信息,正常情況肯定是不允許,通過微信開放的OAuth2.0我們可以做授權認證。我們點擊自己網站的微信按鈕,跳轉一個連結,這個連結比如是:https://open.weixin.qq.com/connect/oauth2/authorize?會跳轉到微信那邊去讓用戶同意授權,用戶同意以後,會重定向回來並攜帶一個code,此code是微信下發的臨時憑證。開發者拿到此code以後,就可以獲取access_token,根據下發的token,我們才能有權限獲取其它接口信息。

開發者根據code獲取微信access_token

回答的時候,能夠把這個過程描述清楚就好,不要過多解析源碼。更進一步了解OAuth2.0可參考阮一峰教程:http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html

說說https的內在原理,ssl握手過程

https實際上是在應用層(http)和傳輸層(tcp)之間加了一層安全套接層(ssl).

服務端解密隨機值,把響應內容通過私鑰進行對稱加密,傳輸給客戶端客戶端發送隨機數1,支持的加密方法(如RSA公鑰加密)伺服器用私鑰解密這個隨機數3,用加密方法計算生成對稱加密的密鑰給客戶端接下來的報文都用雙方協定好的加密方法和密鑰,進行加密

大家如果要了解更多ssl詳細過程,可參考阮一峰教程http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

為什麼要用非對稱密鑰,pms呢?公鑰怎麼了?

非對稱加密相對更安全,通過公鑰解密後,只有私鑰才能解密,而對稱加密只需要一個密鑰就能加密和解密。

PMS(pre master secret),SSL協議並不信任每個主機生成的隨機數,因此PMS也有可能被推測出來,所以需要客戶端、服務端和PMS三個隨機數一同生成密鑰才更安全。

關於SSL和HTTPS大家可能看不懂,我建議直接回答不知道。

說一說響應式布局吧?

響應式布局是指同一個網站在不同屏幕尺寸下顯示不同的布局。它跟自適應不同,自適應是同一個網站在不同設備上自適應(比如自適應不同的Android和iPhone設備)。傳統的做法會針對PC、移動端各做一套項目,而響應式會同時支持PC和H5。響應式方案:

css媒體查詢根據尺寸來定義不同樣式,比如600/900/1200/1600rem是根據html的根元素來決定元素大小的,在自適應布局中應用非常廣泛。c3中新增視窗,1vw代表1%的寬度,通常結合rem一起使用。

Bootstrap/Antd/ElementUI中的柵格布局,本身也是一種響應式。

響應式背後的瀏覽器原理你知道嗎?

根據瀏覽器或設備的解析度可以計算獲取到相應的尺寸,通過不同的尺寸可以動態的修改html元素或者盒子在瀏覽器中的大小,從而實現響應式。

旋轉動畫css,怎麼去做?
  transition:all 1s linear;
  transform:rotate(360deg);

animation:rotate 5s infinite;
@keyframes rotate
{
 from {transform:rotate(0deg);}
 to {transform:rotate(360deg);}
}

dom樹和cssom樹原理也說一下吧

大家可以參考我這篇文章,應該能找到答案! 從輸入URL後前端的知識爆炸,你懂多少?

為什麼link要在前,script標籤要在後面呢?原理

link標籤並不會阻塞DOM解析,只會阻塞DOM渲染,而script加載js過程會阻塞DOM渲染和CSS加載,所以為了更好的用戶體驗和更優的前端性能,我們通常把link放前面,script放後面。js之所以阻塞DOM渲染是因為JS本身是單線程,在執行的過程中只能從上到下依次運行,異步任務除外。

script前加async和defer也不會阻塞。

場景題:保證瀏覽器不受腳本的惡意攻擊

主要考察前端漏洞:XSS攻擊和CSRF攻擊

XSS主要指跨站腳本攻擊,一般會偽造網站,竊取cookie,也包括一些sql注入和html注入等;防禦方法:

服務端可設置cookie為httponly,前端無法讀取,只有服務端可讀取

CSRF主要指跨站請求偽造,通過向A中注入連結,使用戶跳轉到B中並獲取A站的cookie,通過cookie向A發送請求,以達到攻擊目的。防禦方法:

EventLoop理解

此處並非一兩句話能講清楚,建議大家到掘金看完整版https://juejin.im/post/5c72307551882562e74812dc

場景題:這裡有cat和animal子類和父類,如何進行es5繼承,至少說出5種
Cat.prototype = new Animal()

function Cat(){
    Animal.call(this);

function Cat(){
    Animal.call(this);

Cat.prototype = new Animal()

function Cat(name){
    Animal.call(this,name);

function Cat(name){
    Animal.apply(this,[name]);

說說你項目做的Vue spa首屏優化吧Vue-Router路由懶加載(import/require)如果使用了UI庫,採用按需加載(babel-plugin-component/import)使用link標籤的rel屬性設置 prefetch(這段資源將會在未來某個導航或者功能要用到,但是本資源的下載順序權重比較低,prefetch通常用於加速下一次導航)、preload(preload將會把資源的下載順序權重提高,使得關鍵數據提前下載好,優化頁面打開速度)

後面還有兩道暫時忽略。

以上是阿里盒馬前端面試的題目和我整理出來的答案,應該對正在找工作的有幫助。

當然後面還有二面、三面、四面題目,後面有時間會繼續給大家整理答案出來!


相關焦點

  • 阿里盒馬前端面試,你要的答案來了
    最近有一篇阿里盒馬前端面試題被各大社區轉載,而且據稱這是阿里校招面試題,我看完以後,簡直驚呆了,打死都不信。今天特意針對他們發的一面,把對應的答案整理了一些。請先做個自我介紹 我是河畔一角,11年畢業,畢業後先從事JAVA方向開發,後在13年轉為前端。
  • 談談校招面試官的感受:6條建議助你進入BAT
    春暖花開,各大公司的校招、實習生招聘已經陸續開始,最近和朋友聊到校招的話題,發現大家都被拉壯丁去做校招面試官,碰到的奇葩事也不少。因為都是技術類,情況都很相似,可以拿出來總結一下,公司有阿里、百度等大廠,也有幾個創業公司,崗位基本是軟體工程師、算法工程師等技術類。
  • 2018web前端面試總結
    從今年3月份開始面試筆試找實習找校招到現在也半年多了,拿到了不少offer,也有了自己的一點心得體會,這裡寫出來分享一下,拙見勿噴。注意一下,以下的觀點僅代表我個人的體會不代表任何人任何組織和任何公司。
  • 校招時,面試官問大學生:我們為什麼要聘用你?小夥子這樣回答!
    面試是我們找工作過程中不可避免的環節,當面試官問你:我們為什麼要聘用你? 我們該怎麼回答呢?剛畢業的小夥子小王分享了一個答案,小編認為他的答案就很有說服力!校招的時候,小王遇到的那個面試官就問了他:我們為什麼要聘用你?回答之前,我們要先弄明白面試官為什麼要這樣問?實際上,面試官是想通過這道題看我們對自己是否自信!
  • 我的前端面試心法(已拿字節offer)
    0、 我的秋招經歷題主基本情況,南方普通985普通學生,接觸前端十個月左右,今年 8 月後開始正式準備秋招。說起我的秋招,一個詞,就是「逆襲」。一開始,華為筆試沒過,三七互娛筆試沒過被撈起來後一面又掛,信心受挫。
  • 嵌入式面試全攻略,記我的一次校招
    校招的優點(相對社招)對應聘者的專業實踐技能要求不是很高,更多看重理論基礎大公司校招很多,是進入到大公司工作的好途徑公司經過學校進行一輪初級篩選,會主動為應聘者避開一些坑人的公司地點集中,都是公司去學校招聘,不必滿世界跑來跑去,節省時間財力準備職業方向的選擇我其實很早之前就在為工作做準備了,具體開始時間是大二的暑假,那個時候有段時間專門請教了多個學長
  • 內資八大事務所校招面試全解析
    在之前的推文裡,零零散散已經和大家介紹了內資八大會計師事務所中的其中幾家校園招聘的面試情況,可能很多同學看完也已經不太記得了。今天小編就給大家梳理一下,把內資八大的校招面試全面的介紹一下,有需要的同學一定要收藏起來哦!
  • 推薦這 10 個 GitHub 上超火的前端面試項目,打造自己的加薪寶庫!
    Front-end-Developer-Questions這個項目裡面很多面試題,而且 star 數非常高,最大的缺點就是 沒有答案!請解釋為什麼接下來這段代碼不是 IIFE (立即調用的函數表達式):function foo(){ }();,要做哪些改動使它變成 IIFE?描述以下變量的區別:null,undefined 或 undeclared?該如何檢測它們?什麼是閉包 (closure),如何使用它,為什麼要使用它?你是如何組織自己的代碼?是使用模塊模式,還是使用經典繼承的方法?
  • 最初和最後5分鐘是關鍵,資深面試官教你「以面試官視角備戰校招」
    吳莉對同學們如何備戰校招進行了細緻地講述。「簡歷是用人單位了解你的第一途徑,內容上除了要充分展現自己的個人優勢外,還要與招聘單位的用人需求緊密地聯繫起來。」中地數碼集團人力資源中心總經理(CHO)、湖北省人力資源經理協會副會長吳莉從面試官的角度出發,對同學們如何備戰校招進行了細緻地講述,湖北經濟學院法商學院近200名學生代表聆聽了一堂「特別」的就業指導課。吳莉首先以職業選擇策略中的「三定原則」(定方向、定點、定位)為例講解求職中的定位策略,面試最初5分鐘為何關鍵?如何製作一份能打動面試官的簡歷?
  • 校招AI面試考什麼,如何準備校招AI面試/視頻面試(附免費體驗面試機會)?
    分鐘點擊上方 藍字 ▸ 右上角 ⋯ ▸ 設為星標 ★覆蓋網際網路、金融、
  • 2020最新Web前端經典面試題試題及答案(持續更新)-開課吧
    Web前端面試題Web前端面試題:說說你對webpack的看法解析:webpack是一個模塊打包工具,可以使用webpack管理你的模塊依賴,並編譯輸出模塊們所需要的靜態文件。可以將代碼切割成不同的chunk,實現按需加載,降低了初始化時間支持sourceUrls和sourceMaps,易於調試具有強大的plugin接口,大多是內部插件,使用起來比較靈活webpack使用異步IO並具有多級緩存,在增亮編譯上更加快Web前端面試題
  • 大學學生會招新面試題刁鑽:你是什麼電器?
    校內40多個學生組織的社團精英主力、風雲人物全都出動,在現場面試招新。各部門為搶到「新丁」各出奇招「攬客」,「搶丁」方式雖然火爆,但新生想要真正被選上,還需過五關斬六將。  好馬要吃回頭草嗎?請用別人沒用過的辦法烤熟一隻雞?如果你是一個電器,那麼你是什麼?這不是公務員考試,也不是應聘工作時的面試,而是浙江財經大學社團招新的面試題。  面試一結束,不少大一新生直呼有趣。
  • 從「offer帝」到面過幾百學生,騰訊&字節面試官給校招建議
    校招時間爭分奪秒,專注十分重要,不建議校招時候連行業都海投,術業有專攻。如果你梳理好了自己印象最深的幾件事,你面試遇到很多問題,都能有相應的答案;如果你能從這幾件事提煉出什麼規律、共性、做事方法,你也就明白你跟這個行業、這個公司有什麼能結合的地方;如果你選擇的原因有理有據
  • 校招求職必須知道的面試技巧有哪些?
    本文由VIP求職和多位校招拿到BAT offer的學長學姐面談後整理而成,主要適用於網際網路校招,無論你之前已經經歷過多次面試,還是即將開始面試,希望這篇文章能夠對你有所幫助。一、前期準備不打無準備之仗,面試開始前,一定要做好充分的準備,包括面試流程、每一輪面試的面試官和常見問題、不同公司的面試風格等,都要提研究清楚。
  • 校招面試特別注意這幾個細節
    面試的準備作為當代大學生被稱為「廉價勞動力」的年代小編建議你面試一定要注意以下幾點01面試要準備什麼?面試是我們走出校園的第一門考試,考試前老師會囑咐我們「不要忘記帶2B鉛筆,要用0.5mm黑色籤字筆填寫……」等等一堆注意事項。那當你獨自走上這個社會考場時,沒事小編來提醒你需要注意什麼:1.做一個有身份的人——記得帶身份證2.
  • 開課吧:2020Web前端開發常見面試題及答案,提高面試通過率!
    Web前端開發面試題及答案問題:實現節流函數(throttle)解析:防抖函數原理:規定在個單位時間內,只能觸發次函數。以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後小科每日均會提供Python、Web及MySQL資料庫相關的習題。學習沒有捷徑,希望大家都能少走一些彎路,順利找到工作!
  • 十幾家大廠前端面試總結(已拿網易 offer) ​
    你可以挑選自己喜歡的語言,熟悉相關的 API,免得到時候要自己實現一些原本就有的函數。但最好還是練一練 C/C++,面試的時候面試官不一定會你掌握的語言,但多少懂點 C/C++。如果是在牛客網筆試,「校招小管家」微信公眾號會在筆試前提醒你。吐槽一下賽碼網,沒有牛客網好用。
  • 寫給大學畢業生的話:又是一年畢業時,春季校招社招,你學哪招?
    三四月份,在自己學校有校招的情況下,我卻沒有回學校參加,而是留在省內參加各個學校的校招,這就導致自己的優勢被抵消了大部分。(我們學校校招6k以上的工作,一抓一大把,還不是吹的!)原因很簡單,參加校招的公司,他們對應聘者的要求,不是只看目前的能力,還看往後的潛力,他們不指望你能夠入職就立刻為公司創造多大的利益,而是你將來能為公司創造多大的利益,重在培養與將來。而社招的公司,就比較簡單粗暴了:你入職後能夠立即為公司創造多少利益?如果不能,為什麼我要招你?
  • 2020Web前端工程師常見面試問題及答案解析
    Web前端面試題及答案 混合開發橋接api是怎麼調用的,需要引入類庫嘛? 調用的對象是什麼? Hybrid框架結構HyBrid App = H5 App + Native框架H5App用來實現功能邏輯和頁面渲染 Native框架提供WebView和設備接口供H5調用方案一種混合應用,在開發原生應用的基礎上,嵌入WebView但是整體的架構使用原生應用提供,一般這樣的開發由Native開發人員和Web前端開發人員組成。
  • 如何通過面試招到對的人?
    谷歌前首席人才官認為,多數的面試都是在浪費時間,比如說做一下自我介紹你最大的缺點是什麼你最大的優勢是什麼,這些非結構化的問題,沒有明確標準的問題,在有效預測員工未來表現上,都沒有價值。 那什麼是有效的面試呢? 98年的一項科學研究表明,最優秀的方法,是樣例測試,也就是說,如果你招一個廚師,就讓他做一個菜。