2019.10.22紅星美凱龍面試前端
10.16號電話接到面試通知,我給面試排到了10.22號十點鐘。而後那邊可能時間衝突,次日特意短信通知,給我安排到了10.22的10:30。vue
面試那天十點十分到達。等待期間和另外一位面試產品的小姐姐聊了迴天,聊了很開心,她說她填完表格以後,已經等了半小時,她很着急,由於下午她還要回公司處理事情。而後小姐姐被叫走了,個人面試官恰好來,給我幾張表和一套面試題,大概到了十一點鐘,個人面試官把我叫走,開始了正式的面試。ios
首先就是自我介紹,自我介紹的內容面試以前準備了一下,因此自我介紹的時候很輕鬆,也沒有緊張,很天然的聊天。es6
個人自我介紹內容大體就是基本信息的介紹(姓名,學校,專業,家鄉)、前公司的主要負責內容、業餘時間的安排、近期職業規劃,以及性格愛好,差很少這麼多。面試
前面巴拉巴拉不少,只是想讓你們熟悉一下流程,下面重點來了,拿好小本本記錄下吧。axios
1.你來講下前端路由的原理吧,不使用別人框架提供的路由數組
我:」兩個模式 hash 和 history,hash就是url裏面顯示的#號promise
history是用pushState和replaceState來操做。「框架
面試官:「嗯,還有嗎?」dom
我:「差很少這些吧,具體我忘記了,我回去再瞭解瞭解」
面試官:「嗯,那你用原生實現一下吧,不用框架提供的方法」
我:(心裏:我剛剛不都說了嗎,那兩個方法,都是具體不知道了,還問啊啊)「嗯,hash的話是當hash改變的話就會觸發一個回調吧,來實現跳轉,history的話就是剛剛提到的pushState和replaceState」
面試官:「你能寫出來嗎」
我:「我不太會,哈哈哈」
面試官:「哈哈哈」
...
so 這道題算我沒打出來,第一道題就不順利。
這篇文章寫的不錯你們能夠看下 https://www.jb51.net/article/143009.htm
2.如何保持浮層水平垂直居中
這道題我是用flex佈局寫的
我:「display:flex;just-content:center;align-items:center;just-content水平對齊方式,aligin-items垂直對齊方式。」
我想着這道題應該沒什麼問題了吧,通常我都是用flex佈局,我很熟悉的!
覺得這樣就結束了,想得美 emmm 我真的太年輕了
面試官:「通常均分,三塊的話怎麼作」
我:''都給個flex:1;「
面試官:「我想給個固定的值200px呢」
我:"??? 那直接width:200px 不就行了嗎" 多是咱們get到面試官的問題
面試官:「flex有幾個參數你知道嗎」
我:「我有點記不清了,沒這樣寫過」
面試官準備過了這一道題,而後我直接反問的說,你幫我解釋解釋那個唄,
面試官:」嗯好的,flex的默認值是三個,(他在紙上寫了flex:1 1 200px;)"
其實我仍是沒太懂,由於我也沒這樣用過,描述不清楚也請你們見諒。
so 這道題我也算涼了!!!
3.請說出函數節流和函數防抖的區別,並寫方法實現它
這道題我以前看過,口述了一下方法,差很少過了,面試官這道題沒有深問。
4.box-sizing的做用
這道題也沒什麼,很常見
5.
const OBJ = {"a":1,"b":2}; OBJ.a =3; consloe.log(obj.a);
這道題我寫的3
面試官:「你解釋一下你的答案」
我:「這個不是直接給實例屬性a直接賦值了嗎,直接修改了屬性值」
面試官:「這道題你懵的吧」
我:「沒有啊」
面試官:」那你解釋一下 var let const的區別「
我:「哦哦 const,哇這個常理不能修改,我居然沒有注意到,可是呢對象是引用類型,指針不發生改變就ok了」
官方一點咱們能夠這麼講:由於對象是引用類型的,OBJ 中保存的僅是對象的指針,這就意味着,const僅保證指針不發生改變,修改對象的屬性不會改變對象的指針,因此是被容許的。
因此這道題我也沒過,是面試官提醒的
6.script標籤的defer、async的區別
有 async,加載和渲染後續文檔元素的過程將和 script.js 的加載與執行並行進行(異步)。
有 defer,加載後續文檔元素的過程將和 script.js 的加載並行進行(異步),可是 script.js 的執行要在全部元素解析完成以後,DOMContentLoaded 事件觸發以前完成。
7.寫出兩個數組去重的方法
我用的es6 [...new Set(arr)] 和 直接遍歷對比配合splice
8.判斷兩個對象是否相等
這道題我直接寫了getOwnPropertyNames()方法,面試官沒有繼續問,後來查下資料涉及深拷貝什麼的,小夥伴們本身總結一下。
9.用vue寫項目的時候遇到什麼問題
我:「dom不渲染的時候用到next tick解決過」
面試官:「你說一下next TIck」
我:「在下次dom更新循環結束以後執行延遲迴調,在修改數據以後當即調用這個方法,獲取更新後的dom「
面試官:「你說下這個實現原理」
我:「我沒去看,只知道能夠這樣用」
面試官:「嗯」
因此這道題我也沒有說好
10.你知道$set嗎
我:」添加的新屬性不能觸發,能夠加上$set就能夠了「
面試官:「實現原理是什麼」
我:「emmm,我如今只知道怎麼用」
因此這道題我仍是沒回答出來,我真的沒有去看vue源碼,本身真的差太遠了,什麼也不會!!!
11.你用promise封裝過axios嗎
我:「封裝過」
面試官:「爲何要用promise封裝axios」
我:「處理異步呢」
面試官:「axios自己就返回一個promise 你爲何還要封裝呢」
我:...
12.說一下promise
說一下promise實現原理
promise說了一下,讓我實現一個promise 我不會。
13.說一下event Loop
這個以前瞭解過,算說出來吧
14.說一下你的優勢吧
說到這的時候我已經我感受我涼了,面試官還在旁邊笑,以致於我說優勢的時候開始笑了,,面試官說你看你說本身都笑了...
總結:整個氛圍很nice,面試官也很nice,我不會的反問他時,他還會給我講,一直嘻嘻哈哈的聊完,可是人家終究要找技術人員,並且剛剛我表現並不怎麼好,因此接下來也沒有收到通知。
雖然每道題大體說出了一二,但實則差很遠,大廠不缺幹活的人,缺的是有想法有能力又能解決問題的人。若是一個211 和 我一個普通本科都面試不不怎麼樣,非要在其中選一個的話那確定是2十一、985 。因此咱們只能提到本身的能力,要否則有什麼優點來讓別人選擇咱們呢!!!
ps:必定要理解原生js,多看一下源碼,讓本身變得有思路,而不是機器。
、