面試過去了這麼久,把八月份面試題和總結髮一下吧,雖然年末你們可能都不換工做~ 仍是能夠看看的。javascript
關於面試,引用葉老溼的一句話。你的簡歷是本身工做的答卷,項目經歷是你給面試官出的考綱。因此,個人面試必定是與個人簡歷、工做經歷相關的,一些面試題並不必定適用於任何人,可是你能夠從中瞭解他們考察的點,以及側重點。基礎知識能夠查漏補缺。css
原文連接html
一家小型創業公司。由於同事有去面過的,他說面試感受挺 diao 的,我就想去試一下啦,拿它先熱熱身,就從boss上投了簡歷。前端
用 setTimeout 實現 setInterval,可沒必要關心返回值的類型。vue
我聽錯了條件,我覺得要注意返回值的類型必須跟原生的同樣,也就是返回一個 number,並能夠 clear。無清除定時器功能的立刻就寫出來了,可是加清除定時器,還有返回值的問題,就費了半天勁... 也沒弄明白。面試官比較着急了,跟我溝通的時候,我才知道返回值不必定非要跟原生的同樣。java
給了一個栗子,結合 pdf.js
的示例代碼,找出這個栗子中爲何分辨率很低。主要是看你經過調試去解決問題的能力。node
而後就各類結合項目各類問唄,如何解決問題的,如何團隊協做溝通的。react
還給了我一個題,讓我回去用 React 實現一個羣組的 CheckBox,其實最後看就是 treeselect 的雛形啊。個人實現jquery
就是 hr 和 ceo 了,就是問一些離職緣由,跟公司價值觀方面的問題了。webpack
不管是一面的 pdf,讓我實現一個功能,仍是二面的問題,都是偏重於項目實戰的。他們想要的是入職就能幹活的人,先能負責某塊開發任務。而且在獨立解決問題,團隊分享方面有所表現。
react 組件的結構,實際上是問組件實例對象的結構,問題沒理解。我說在 children 裏就能看到。他問是嗎,是什麼樣的,你日常應該用過 children 啊,應該知道啊。我推測 children 是數組,由於有 children.map 方法。他又問必定是嗎。
這個問題上來就暴露了我對這些細節是沒有關注的,而他指望的是,你用 React,連它的實例都沒看過,children 多是一個,多是多個也不清楚。
那我再問一個特別簡單的問題,組件之間的通訊,好比父到子,子到父。再說一個兄弟組件怎麼通訊,嵌套了好多層呢?
嵌套多層的他直接說有好幾種方法,你隨便說幾種吧。我歷來木有總結過,整我的有點懵逼,也沒有回答好。後來整理了一下 React組件之間的通訊
再問一個稍微有難度的,組件的 state 嵌套多層的時候,我要讓最裏面那個 state 變化,怎麼作。我開始沒理解這是啥意思,他解釋說 state 是 { a: { b: { c: { d: 1 } } }
這樣,你 setState 的時候,怎麼改屬性 d 的。我說一層一層的找進去,setState 新對象。他又說那幾層是能夠的,假如說一百層呢,也這樣嗎?我就懵逼了。
他說 react helper裏面有個 immutable 的庫,就是用來處理這種狀況的。
immutable 我是知道的,可是我瞭解的是一般處理不可變數據的。後來查了一下,應該是這種操做。
import { formJS } from 'immutable';
const obj1 = { a: { b: { c: { d: 1 } } } }
const obj2 = Immutable.fromJS(obj1).updateIn(['a', 'b', 'c', 'd'], value => value + 1)
console.log(obj2.toJS); //{ a: { b: { c: { d: 2 } } } }
複製代碼
你簡歷上說你看過 redux 的源碼,簡單說一下吧。 終於承認了我一次,說這個確實看過,能說出來。我有點尷尬了。
你說你讀過 《深刻淺出 nodejs》,那你在項目中用過 node 嗎。
移動端作過嗎,適配問題。750px 的設計稿,你怎麼作適配,給幾種方案。
rem的原理是什麼。這個答的也很差
而後就是讓我問了一些問題,還跟我說你工做才一兩年,你要的這個薪資確定給不到,騰訊卡工做年限很嚴格,評級方面。最後就是如今不會直接給你面試結果,他們會橫向比較幾個候選人。
騰訊面試的感受就是,沒有那麼正式,都是部門的技術直接聯繫的你,而後二面就是部門負責人了,決定了是否入職。二面給個人感受就是,他從 React 入手問一些基礎的問題(一些須要留心注意的)。若是沒有注意這些點,沒有總結,或者看過相似的總結文章,是很難有條理的回答出來的。其實我不太喜歡他這種,「我以爲很簡單... 你就應該會的」 的方式。可是此次我發現了本身的一個問題,就是面試的時候愛說一些瞭解的名詞,可是實際沒用過,剛好這個面試官都比較深刻了解,也比較反感,他認爲你這是 「不懂裝懂」。因此面大公司,不會的仍是儘可能要說不會,不要犯了面小公司的錯誤。本身也確實沒有作到注意總結,瞭解也確實比較淺顯,爲本身之後的工做學習敲響警鐘。
因爲一面是電話面試,主要問了好多項目的問題,如何解決問題的。
面對面
讓我本身去聊項目,去考察個人組織、表達能力,以及溝通能力。並且這也最大程度上能瞭解到,關於這個項目,你本身思考了多少,主導程度。而後考察主要使用的技術棧,瞭解的深度如何。而後就是他們業務經常使用的點。剛面完,本身感受其實還能夠,由於都能回答出來,可是可能深度還不夠吧。天貓的要求仍是比較高的,並且面試官是從杭州過來專門面試的,也有不少候選人同時面試,只能說明本身在這裏面還不夠出色,不能脫穎而出。
function fun(n, o) {
console.log(o);
return {
fun: function(m) {
return fun(m, n);
}
}
}
fun(0).fun(1).fun(2);
let fn = fun(0).fun(1).fun;
fn(2);
fn(3);
複製代碼
這種題好好看看通常能答出來。function fun() {}
的原型指向哪裏 ? Function.prototype
。Object.prototype.toString.call()
吧。const throttle = wait => fn => {
var timer;
return (...args) => {
if (!timer) {
timer = setTimeout(() => timer = null, wait);
return fn(...args);
}
}
}
複製代碼
他說,怎麼沒有清定時器。我說節流函數分兩種的吧,舉個例子,我這個是按鈕點擊後,500ms 後的點擊纔會執行。還有一種是兩個點擊間隔 500ms 以內,只執行一次,防止連續快速點擊。後面的沒寫,大概是這樣
const throttle = wait => fn => {
var timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => {
fn(...args);
}, wait)
}
}
複製代碼
什麼是科裏化,怎麼實現一個 curry。curry 利用了什麼特性,他說是其實就是閉包
設計模式瞭解嗎?說一下觀察者,我說我簡單寫一個實現吧。就寫了一下。
react 的生命週期介紹一下
如今的薪資
你有什麼問題
我問了一個很扯的問題,我能給團隊來帶什麼?面試官說,不能說帶來什麼吧。一些原本就存在的問題,很難說加入一我的就帶來質的改變什麼的。最主要的仍是可以獨當一面吧,可以負責一個模塊。
來滴滴面試的時候,很自信,因此自我感受良好。一面是特別注重基礎,各個知識點的問答,想起什麼來問什麼。看你對基礎的掌握狀況吧。二面我感受更多的在看你的情商如何了,固然個人情商不是很高,面試官最後也說了,若是我更 open 一些,會更好。說個人簡歷上也能看出本身嘗試了不少東西,能夠去突破一下。固然也問了一些技術的問題。三面是團隊的前端負責人,從價值觀,我的的成長規劃,解決問題的能力去考察,也瞭解了一下指望薪資。最後的問題就是看有沒有共同的愛好吧...
相對 tmall,tx 來講,didi 考察基礎,可是又沒那麼深刻,主要是對應聘者的級別要求不同吧。tmall 的社招不只是看你幹活能力,更多的是你會不會去 push 一些東西,其實就是找亮點,你必定要有積極性,好比說推進某個技術在項目的應用,落地。作出一些好的工具,作一些深刻的研究,對業務帶來了積極影響。
各類項目各類問,問的特別細,每個地方的實現,問你的思考 🤔,以及怎麼作規劃排期,怎麼去處理 bug 等等。
這塊就日常本身項目中,作的足夠細緻就好了,有時候你提到一個點,他都會對這個點進行深挖,看你對項目的細節是否足夠了解,另外還有項目總體上的瞭解。
mobx redux 的區別,從簡歷上挖掘出的點,去看你是否總結。
mobx 我作過簡單的總結。
本身作過的前端優化。經典的面試題,回答的點仍是不少的,從 web 來講,從[瀏覽器] 發起一個 [請求],服務器[返回],[頁面渲染],[css渲染],都有的說,我也有簡單的總結
react 和 vue 有什麼區別啊,特別注重考察我的的總結;
對前端安全的認識
劫持遇到過嗎,主要有什麼。我說了一個 dns 劫持。
webpack都是怎麼用的
webpack.dll ? context這個參數是幹嗎的,我忘了...
react的性能優化有沒有了解過啊,你都是怎麼作優化的。 說實話,react 的優化我不多作 - -,一般 react 的 diff-dom 帶來的便利不多關注它的性能問題。不過面試我固然不會說這個,就說了幾個點,shouldUpdate,pureComponent,immutable 等等的。不過他彷佛不是很滿意,繼續問我有沒有更深刻的,全面的優化。我就說侷限於此了。
問我 angular 用的怎麼樣,我說項目中沒用過。
最後聊了一些他們平常的工做,主要是後臺管理,運營去推送閱讀等。項目目前是 angular 作的,後期會像 React 轉。
本身以爲能回答上來個 70% 左右,他最終告訴我,今天的表現能打個七八分吧(滿分十分)。而後他就去跟他的 leader 溝通了,回來也沒直接拒絕我,就給了我一些建議,要對項目總體的把控多一些,項目的思考,橫向多去了解,跟你配合的同窗(rd ?)作了哪些工做,還說不過也不着急,畢竟你還年輕。黑人問號臉。
本身的確沒有去帶整個項目的經歷,更多的是我的負責一個模塊,雖然對其餘人的工做也有了解,技術上的架構也略知一二,不過仍是日常的思惟有侷限性吧,對總體的思考太少,不過我以爲這雖然是從此發展的方向,可是目前仍是專精某些點,縱向多作一些深刻工做吧。
三面是一個技術總監,感受人挺不錯的。
A B C D ... Z AA AB AC ... AZ BA BB ... CA ... ZA ... ZZ AAA AAB ...
對應:
1 2 3 4 ... 26 27
複製代碼
作一個程序,讓輸入一個數字,輸出具體的值。好比輸入 27,輸出 AA。這個問題我也描述不太清,其實就是一個相似進制轉化的問題。
'192.168.0.1'把它轉化成位數。進制的偏移問題
你以爲本身有什麼缺點
你以爲你以前作的一件最酷的事情是什麼
你有什麼想問的。大概瞭解了一下美團超市是幹嗎的,介紹的時候還問,想不想作咱們的這個商超,感興趣嗎。固然說感興趣
第一面特別細,以前不多問到的 html,css,還有 jQuery,都問了。這些地方仍是多少能記着一些的,能回答個差很少。並無問你項目中使用的框架,可能關注的點不一樣,他們更關注基礎吧。二面其實就關注性能優化比較多了,還問了不少學習,分享方面的,估計是想看你是否是熱愛學習啊,學習方法,喜歡分享的話能給團隊帶來新鮮度,大部分團隊都是有每週的分享的。他問的問題我都是比較喜歡的,開放性的話題更多一些,你能更好的展示本身。三面問了一些基礎的計算機問題,這些是我不擅長的,不過大概說了一下思路,並用 js 去實現。還有不少就是面試常問的問題啦,面試前必定要考慮,作準備。好比說作過最酷的一件事,不管是什麼事,只要你本身以爲酷就好了,個性面試官。總結下來就是,對這個部門的面試感受,以爲不錯,進去作的工做是移動端,這也是我以前不多作的,也不用什麼 react。這個部門是一個新成立的,團隊也是從 0 開始,這種團隊也有好處也有壞處,好處是你們都是新人,項目也是全新的,適合你發揮。很差處就是太新了,加班是確定的,壓力也會大一些,你長時間都會處於業務中。
硬廣。咱們團隊在招高級前端開發,大部門是平臺技術部下的平臺前端,咱們負責的方向是專快司乘運營等大型管理系統,會用 React 是硬性條件,期待有 node 開發經驗,基礎好,愛學習是基本,要有積極主動的推進能力。另外,不喜歡作 pc,不用 react 的,或者有其餘喜歡的部門,也能夠推薦。先發郵件帶簡歷聯繫我吧。
郵箱:sunyongjian0108@gmail.com