這次位元組的一面還是比較簡單的,和一般公司的一面差不太多,基本大家只要多複習複習js的基礎和es6,其實都差不多能夠答出來。接下來記下具體這次的面試和流程,希望能對xdm有所幫助
css首先是面試官讓你自我介紹,介紹完之後開始問css方面的知識,這部分問的少,居中對齊有哪幾個方案,position居中對齊的方案解釋下原理,這兩個問題回答完就直接js部分了。css部分複習比較廣泛繁瑣,盡量還是在日常使用中累積經驗
js這部分首先是事件迴圈題,是乙個老生常談的題目了,我沒記下原題,這裡貼乙個類似的題目,當時出的是只有五個列印的題目,這個題目只要注意在微任務中promise、settimeout的執行順序,遇到await會立即執行表示式,然後把表示式後面的**放到微任務佇列裡,讓出執行棧讓同步**先執行就行了
async function async1()
async function async2()
console.log('script start');
settimeout(function() , 0)
async1();
new promise(function(resolve) ).then(function() );
console.log('script end');
/** * script start
* async1 start
* async2
* promise1
* script end
* async1 end
* promise2
* settimeout
*/
緊接著的是手寫的題目,要求手寫call函式和promise函式(這個其實沒有讓我去寫,只是說了下實現的思路,後面的redux簡單實現也是只要求說了思路),注意以下寫的東西並不是當時寫的**
function.prototype.mycall = function(context)
function mypromise(executor) )}}
function reject(reason) )}}
try catch (err)
}mypromise.prototype.then = function (infulfilled, inrejected)
if (this.status === 'rejected')
if (this.status === 'pending') );
this.onrejectedcallbacks.push(function () );
}};
promise部分完之後,面試官問知道拍平嗎?拍平能說出有哪幾種方案,我說了簡單的比如tostring+split的方案,遞迴的方案,還有array.prototype.flat可以做到這一點,然後這裡面試官說希望我能手寫乙個flat函式,要求傳陣列進去能夠返回拍平後的陣列
// 錯誤示範
// 這個是當時我寫的,num並未起作用,然後面試官就讓我回答後續的問題了
function flat(arr, num) else
})}else
return res;
}console.log(flat([1,2,3,[1,2, [3,4], 5], 6], 1))
緊接著面試官詢問了我了解哪些狀態碼,我說完之後他取出304狀態碼問這個狀態碼是什麼時候會看到的,這個地方其實就是問你對快取的了解,問完後就進入了react的部分
react
首先簡單問了react中diff的原理,key的作用,然後問了生命週期都有哪些,讓我按自己的記憶說一遍,因為後面我用的是hooks,所以生命週期我只說了六七個,然後問了我,this.setstate是同步的還是非同步的,這裡是乙個小陷阱,因為this.setstate在一些時候是同步的,一些時候是非同步的,這個大家可以自己去了解一下在監聽事件、繫結事件、生命週期中的this.setstate表現。然後問了我this.setstate為什麼不能用在render裡,這裡也是一點小陷阱,因為事實上不是不能用,而是盡量謹慎,this.setstate會觸發重新render,你可以為其設定限制條件等控制他的重新渲染。為什麼hooks不能用在if-else裡面,這個其實我沒有太清楚,所以說了不好意思不太清楚。值得一提的是,大廠的面試官不會因為你不懂而改變對你的態度,始終都會是比較溫和的面試態度,所以這點對於面試者還是比較舒服的,不會出現面完心態大崩的情況啦。然後問了我懂不懂redux的簡單的實現,正好這個我有寫過乙個簡單的實現,然後就邊地打了幾行,邊講具體的**和設計思路,具體**在下方
export default function createstore(reducer)
const subscribe = (listener) => listeners.push(listener)
// 這裡初始化dispatch的原因是在這之前,state是為null的
dispatch({});
return
}
其他
最後面試官還問了我graphql的意義是什麼,這個是因為我的簡歷上是有說用過graphql的,所以問了用這個的原因,這裡我答得是和restful的一些差別,這個的話大家可以沒用過的話就可以不用複習,不用擔心面試官會問出除你簡歷所寫之外的技術(昂除非是很基礎的比如css、html),最後是讓我問問題,我詢問了該前端團隊所選用的技術棧是怎樣的,也是gql + apollo那一套加中間層,具體的沒有詳細問,希望我的面經能夠對大家的面試有所幫助
百度實習生前端面試面經
一面是在2020.11.10 15 00,面試小姐姐很漂亮哈哈,不過還是很緊張,畢竟這麼久沒有和面試官對線了。面試大概是50多分鐘,面試小姐姐的電腦沒電了,最後乙個柯里化的程式設計題我寫了之後發給小姐姐的,好傢伙老緊張了,按鍵盤都按不明白了。不過我覺得我答的還行,除了有些緊張導致吞吞吐吐大部分都算是...
2019 3 6 騰訊前端實習面經
個人覺得面試官失策了,剛開始讓我介紹專案經歷,我就刷刷刷講了10多分鐘。比較能說 然後問我在專案裡學到了什麼 我又講了十幾分鐘 我這張嘴喲 然後問我在學校學習到了什麼技能 依舊。我是怎麼學習技能的 正經問題 是的,就乙個,我太菜了,沒問其他 仰天長嘯 我好菜啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 從...
面經 NLP演算法實習生 9 11
感覺剛開學這段時間真的是面試最水的時期了,想當初面暑期的時候真的被狂虐 坐下來他才開始看我的簡歷,想著主動點,就主動做了自我介紹balabala。因為之前有小公尺的實習經歷,然後問我在小公尺幹了什麼 主要是幹了srl ner這塊的事 然後再聊的過程中感覺到面試官不怎麼了解知識圖譜,然後就刻意往這方面...