紙上得來終覺淺,絕知此事要躬行。
面試是你們都沒法避免的一個話題。我所在的公司是一個不算小的公司,在這個公司作外包兩年,轉正一年。在金九銀十面試的季節裏也按奈不住想去面試一下。面試的經驗除了如今呆的公司再也沒面試過其餘公司。在這裏沒有什麼BAT,沒有什麼美團、小米等大公司,只是單純的想寫一下本次面試的過程。
css
我面試的公司是一個搞互聯網金融的小貸公司,聽說是外資投資,福利待遇很好。不過是剛起步招聘的是核心成員,要求相對很高。因爲是一個剛起步的公司技術面和HR面都是同一我的,面試個人是一個全棧開發工程師。html
長話短說,下面是我面試時面試官所問的一些問題:前端
自我介紹能夠說是在正規公司面試流程的第一步,公司瞭解一我的就是先從你的自我介紹開始。在這個階段,我只是簡單的說了一下從畢業(15年畢業)到如今,在公司作的一些大型項目和用到的一些技術。這個根據我的不一樣的狀況自由發揮,在此不作大篇幅的介紹。css3
在8102年Vue、React、Angularjs三大框架橫行的時代,個人面試官也提出了一些問題。提問了Vue的生命週期和子組件和父組件之間的傳值,模擬了一個修改數據的場景問我是在哪一個生命週期去調用。面試
因爲我在簡歷上寫了我也用React開發過,因此面試官就問我Vue和React相比較各自的優缺點。在這個問題上我只是簡單的說了一下Vue和React的特色,主要說了一下本身的感覺並無深刻的去比較過他們之間的差異。算法
如何理解Vue,Vue與smarty模板的差異?面試真的能讓人大開眼界,不只能夠了解本身的不足還能夠觸類旁通的對比各類技術。面試官若是不問我這個問題我尚未比較過這些東西,後續若是有時間我會把他們之間的差異介紹一下。segmentfault
做爲一個優秀的前端網絡工程師,瞭解基本的http知識是頗有必要的,但做爲一個前端菜鳥的我忽略了這方面的知識我反省。跨域
在網上查閱了一些資料之後明白爲何說http是一個無狀態協議,通俗的講無狀態就是客戶端請求數據,服務端對這個請求不去記錄、不去關注。若我理解的有誤差歡迎各位大佬給我留言溝通交流。數組
面試官忽然問我這個問題一下把我搞蒙了,這個問題感受已是一個被淘汰掉的問題,我接觸前端有3年了算不上很高深,沒有使用過刀耕火種的技術去開發前端網頁。對這個問題沒能回答的上來。只是說它是告訴瀏覽器是使用了那種語言規範。promise
在網上找到了不少關於這些方面的介紹,能夠說前端飛快的發展可是也不要忘記最基本的知識。
經典面試題之一,憑感受本身回答了一下可是不是很深刻,在這裏有一篇文章解答的很好。一個優秀的前端不只僅只在於表象,要有專研精神把某一個問題了解透徹這樣纔能有進步。
經典面試題之一,網上資料一大把。
在8102年HTML5和CSS3已經獲得不少瀏覽器的支持學習好新的規範也是前端必備之一。瞭解並使用HTML5的一些新特性,是很重要的一塊。個人面試官問了我H5的新特性都有那些?css3的選擇器有那些?css3選擇器它們之間的權重和優先級?(感受問的應該是css的選擇器)。如何畫一個相似心電圖的線?
簡單的說一下ES6新增的方法,除了promise還有那些異步方法,解構的原理。
如何適應移動端不一樣分辨率不一樣尺寸,PC端適配移動端,自適應和從新開發移動端的優缺點。根據不一樣的場景去使用不一樣的方法,具體狀況具體分析。
大數據時代都要考一些算法?下面是面試官的考題分析給你們,但願你們能幫我指點迷津。
一個整型數組,將其劃分爲相同的N(整數)個切片,每一個切片加總和是相同的,是否能夠找到而已的切片,若是找到就找到了所謂的N等分點,輸出true,不然輸出false。
如:N=4,輸入數組[2,3,5,1,2,2,1,1,3],切片結果爲:[2,3],[5],[1,2,2],[1,1,3],也就找到所謂的4等分點,結果輸出爲true。請寫出一個方法實現這個操做。
這個問題的主要思路就是:先求出平均數,而後依次去取數組裏面,加起來等於平均數的元素。最後就必定要恰好數組取完了,分片的數量也等於傳入的n。
/**
* @description 是否可以找到指定數組的N等分點
* @param { Array } integerArr 整型數組
* @param { Number } n 幾等份
* @return { Boolean }
*/
function isFindAverage(integerArr, n){
if(!integerArr || !Array.isArray(integerArr) || !(n - 0)){
// 入參不符合要求
return false;
}
// 若是總和不能平均整數,則必定不能平均分片
const average = integerArr.reduce((prev, curr) => prev + curr) / n;
if(average !== parseInt(average)){
return false;
}
// 能夠分爲幾片
let result = 0;
// 當前分片的總和
let total = 0;
for (var i = 0; i < integerArr.length; i++) {
// 相加恰好爲平均數,則去除數組符合條件的整數,並增長分片數,從頭開始再相加
if(total + integerArr[i] === average){
result++;
integerArr.splice(i , 1);
i = -1;
total = 0;
}else if(total + integerArr[i] < average){
// 相加小於average 則繼續循環相加
total += integerArr[i];
integerArr.splice(i , 1);
i--;
} };
// 分片長度爲所傳n 且 數組必須更好長度爲0
if(result === n && integerArr.length === 0){
return true;
}
return false;
}複製代碼
跳槽能夠說是一個很重要的選擇,到最後面試官通常會問一下是否有什麼想了解的。其實在面試以前,面試者就應該對一個公司簡單的瞭解一下。在網上查找一下這個公司的基本狀況,從招聘簡介中也能夠看到公司的一些狀況。當面詢問也是一個很好的途徑,畢竟面試是相互選擇的。在這個時候能夠詢問一下本身想了解的或者不明白的,能夠詢問剛纔的技術問題。其餘的因人而異。
之後的前端工做再也不是簡簡單單的切圖仔的工做了,瀏覽掘金的用戶前端開發確定不是簡簡單單切圖的。從面試的來看企業招人的要求提升了,做爲開發者也要相應的提升本身的技術,既要鞏固基礎知識,也要學習新的知識。一個合格的開發者要不斷的學習,沒有一個行業可以一勞永逸。其實面試也是鞏固本身知識的一個途徑,隔一段時間去面試一下不只能夠了解其餘公司所使用的技術,所重視的方向;同時也是對本身學習的檢驗。文中若是有什麼紕漏請各位大佬幫忙指出一下。
路漫漫其修遠兮,吾將上下而求索。