摘要:面試官比較著急了,跟我溝通的時候,我才知道返回值不一定非要跟原生的一樣。騰訊一面平常開發怎么設計組件的。總結騰訊面試的感覺就是,沒有那么正式,都是部門的技術直接聯系的你,然后二面就是部門負責人了,決定了是否入職。
引入
面試過去了這么久,把八月份面試題和總結發一下吧,雖然年底大家可能都不換工作~ 還是可以看看的。
關于面試,引用葉老濕的一句話。你的簡歷是自己工作的答卷,項目經歷是你給面試官出的考綱。所以,我的面試一定是與我的簡歷、工作經歷相關的,一些面試題并不一定適用于任何人,但是你可以從中了解他們考察的點,以及側重點。基礎知識可以查漏補缺。
原文鏈接
moka一家小型創業公司。因為同事有去面過的,他說面試感覺挺 diao 的,我就想去試一下啦,拿它先熱熱身,就從boss上投了簡歷。一輪
用 setTimeout 實現 setInterval,可不必關心返回值的類型。
我聽錯了條件,我以為要注意返回值的類型必須跟原生的一樣,也就是返回一個 number,并可以 clear。無清除定時器功能的馬上就寫出來了,但是加清除定時器,還有返回值的問題,就費了半天勁... 也沒弄明白。面試官比較著急了,跟我溝通的時候,我才知道返回值不一定非要跟原生的一樣。
給了一個栗子,結合 pdf.js 的示例代碼,找出這個栗子中為什么分辨率很低。主要是看你通過調試去解決問題的能力。
然后就各種結合項目各種問唄,如何解決問題的,如何團隊協作溝通的。
還給了我一個題,讓我回去用 React 實現一個群組的 CheckBox,其實最后看就是 treeselect 的雛形啊。我的實現
二面自我介紹
最近做的一個項目,其中的難點,過程。
最近做沒做過技術調研,我撿我了解的說,比如redux和mobx的區別。
做技術分享的時候會關注哪幾個點,
答: 它的實現原理,簡單的一張圖。一個簡單的demo引入,并看一些實現。充分表現它的優勢,然后跟現有的技術棧是否能結合,快速上手。有什么缺陷。
在第一家公司有沒有記憶深刻的項目,經歷。項目的話就是最開始的時候,讓我自己寫一個頁面的時候,在一周之內搞完。。有一個特效是在輪播圖上加放大鏡,用swiper和自己寫的放大鏡。當時各種努力工作終于把這個功能做完,但是忽略了兼容性的問題。在ie8,9 是無法滾動的。然后立馬切換到另一個slide.js,替換上之后放大鏡失效了。當時好像是插件內部阻止了冒泡行為,我那個放大鏡取不到事件了。 因為已經到deadline了,通過我們的leader跟運營人員溝通,先不要這個功能了。就上了。后來查的時候,swiper2的兼容性比較好,ie8.
個人的缺點 。技術上就是還是比較low, 然后就是個人的毅力感覺一般,但是最近健身感覺自己很不錯。
怎么算是分布式的應用呢,屬于自己挖坑。
問了我好多不是技術“點”的問題,都是大的面,細節很少。記不清了。
三四面就是 hr 和 ceo 了,就是問一些離職原因,跟公司價值觀方面的問題了。
總結無論是一面的 pdf,讓我實現一個功能,還是二面的問題,都是偏重于項目實戰的。他們想要的是入職就能干活的人,先能負責某塊開發任務。并且在獨立解決問題,團隊分享方面有所表現。
騰訊 (omg) 一面平常開發怎么設計 react 組件的。比如 container 組件,業務組件等等的。
手寫一個觀察者,發布訂閱模式。
什么是函數式,跟面向對象有什么區別,因為我簡歷寫了正在學習 fp。
科里化,寫一個
cache-control,http-only
url輸入到服務器中間發生
redux源碼
vue跟angular像不像
vue跟react的模板渲染分別是怎么做的
實現垂直水平居中
二面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 入手問一些基礎的問題(一些需要留心注意的)。如果沒有注意這些點,沒有總結,或者看過類似的總結文章,是很難有條理的回答出來的。其實我不太喜歡他這種,“我覺得很簡單... 你就應該會的” 的方式。但是這次我發現了自己的一個問題,就是面試的時候愛說一些了解的名詞,但是實際沒用過,恰好這個面試官都比較深入了解,也比較反感,他認為你這是 “不懂裝懂”。所以面大公司,不會的還是盡量要說不會,不要犯了面小公司的錯誤。自己也確實沒有做到注意總結,了解也確實比較淺顯,為自己以后的工作學習敲響警鐘。
阿里 (天貓) 一面由于一面是電話面試,主要問了好多項目的問題,如何解決問題的。
比如問其中一個項目,查詢多字段對應處理的問題,sql語句怎么拼的,你的自定義配置是怎么回事。
session 和 cookie 的區別
使用 redux 和 mobx 的區別
什么是 bfc
node了解多少,用過嗎
算法怎么樣
好多問題,有點忘了,就是各種知識點... 其實百分之八九十能答出來,他也覺得不錯,讓我后面好好準備,架構方面,原理方面。
二面面對面
介紹一下你的工作歷程(經驗)
我們找一個產品或者項目具體聊聊,讓我自己說。
介紹一下項目,技術棧,我是不會問的。
你用過 vue, react。你覺得他們有什么區別。
說一下你是怎么用的 redux
我自己提到了通常放在 container,他問了一個 connect 怎么做到注入 state 的。我就說 connect 是一個高階組件,注入進來的 store,通過 state 維護?他又問那是怎么實時 render 的?我說 connect 里面應該有 監聽 store 的 changes 吧。最后就說沒看過 react-redux 的源碼,只看過 redux 的源碼。
看了我的一篇博客,問了一個 this.children 是實例還是 class
react router 的 hash ,history api 有什么區別,我說了一些表層的區別,url 的不同,實現的原理不同。他繼續問還有什么內部的不同嗎,我就說不了解了。
mobile 端有接觸嗎,我說做的不多,主要還是 pc 端吧,我說你可以提問。問了一個viewport的,如果 width=device-width,iphone6 上頁面寬是多少,plus 是多少。如果 viewport 里設為 width=375,plus上會縮小還是放大。
總結讓我自己去聊項目,去考察我的組織、表達能力,以及溝通能力。而且這也最大程度上能了解到,關于這個項目,你自己思考了多少,主導程度。然后考察主要使用的技術棧,了解的深度如何。然后就是他們業務常用的點。剛面完,自己感覺其實還可以,因為都能回答出來,但是可能深度還不夠吧。天貓的要求還是比較高的,而且面試官是從杭州過來專門面試的,也有很多候選人同時面試,只能說明自己在這里面還不夠出色,不能脫穎而出。
滴滴 一面簡單介紹一下自己
上來就是一個數組的構造函數上提供了什么方法,然后我就一頓說,副作用的,增刪改的,map的
indexOf和findIndex的區別,我說沒用過 findIndex
寫了一道題,是關于作用域的題。
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);
這種題好好看看一般能答出來。
react 中的某個組件嵌套很深,怎么傳遞 props,很不錯,之前整理過。
redux 和 mobx 的區別。我就從實現的原理,使用方式,結合 react 等方面闡述了一下。
你剛提到了 observer,這覺得它們是怎么實現的。redux(listerners),mobx(get,set) 的方式都說了一下。
observer 是什么模式。
還了解其他的設計模式嗎。我他媽一激動把面向對象說出來了,這當然不是設計模式了,是編程思維。
js 模擬一個并發
實現兩個 setTimeOut之后再做什么。1.原生實現一個串行的隊列。2. 用 promise 去封裝一下,然后用 promise.all/generator/async.
算法,問我快速排序,說一下它的原理,我說忘了。
問 es6 主要用那些新語法,我說了幾個,箭頭函數,解構賦值,const 聲明等等... 他說最常用的不應該是 class 嗎...
es5 實現一個繼承,我差點給他寫四五個。剛學 js 的時候整理過 link
es6 怎么判斷一個數組? isArray 啊。 [].isArray ? 我說 Array.isArray(),類上的靜態方法。
css 清除浮動用什么,我說就兩種,一個是 css 樹形 clear,一個觸發 bfc。
css3 動畫有什么,怎么用。就是考察 transition,translate,animation 啥的。
less 中的 & 代表什么意思。這個倒沒關注打包后的代碼,想了一下應該是上級作用域的選擇器...
自動化工具用什么,我說打包的話就用 webpack,其中又有各種配置,預處理,編譯啥的。配置文件自己寫過嗎,我說寫過。
搭建過 react 項目的架子嗎,當然。
最后一個問題是,
function fun() {} 的原型指向哪里 ?
Function.prototype。
順了一下我的履歷,問這次為什么打算跳槽,再上家公司時間也不長,期待一個什么樣的工作。我說希望有一個技術都比我牛逼的團隊。
假如說團隊里的大部分人技術都不如你,怎么辦。我說那也挺好,我可以發揮我的長處,做一個技術 leader 的角色。又問那如果公司不給你一個 leader 的級別呢... 我就說那也挺好的,你可以成為一個重要的角色,不可或缺的人。
如果你作為一個 leader,你需要什么樣的下屬。 我說一個不可或缺的人,一兩個技術比較好的。其他不需要那么技術好,只要能勝任工作就行了。
你覺得你是容易相處的人嗎
看你是信息與計算科學的,算法應該不錯,手寫一下快速排序吧。?我說忘了,我可以寫一個冒泡或者插入,然后就寫了一個冒泡。
怎么判斷一個對象是 object,還是 array。用 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 的生命周期介紹一下
現在的薪資
你有什么問題
我問了一個很扯的問題,我能給團隊來帶什么?面試官說,不能說帶來什么吧。一些本來就存在的問題,很難說加入一個人就帶來質的改變什么的。最主要的還是能夠獨當一面吧,能夠負責一個模塊。
三面前兩面的感覺如何。
有沒有什么遺憾的地方?就是前兩面沒大好的地方。
15年畢業,你的第一家公司是 xxx,在那主要收獲了什么?
我提到了不斷自驅,學習。
最近解決的一個棘手的問題,前端拼 sql
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 ?)做了哪些工作,還說不過也不著急,畢竟你還年輕。黑人問號臉。
自己的確沒有去帶整個項目的經歷,更多的是個人負責一個模塊,雖然對其他人的工作也有了解,技術上的架構也略知一二,不過還是平常的思維有局限性吧,對整體的思考太少,不過我覺得這雖然是今后發展的方向,但是目前還是專精某些點,縱向多做一些深入工作吧。
美團 (商超) 一面從html,css開始
了解盒模型嗎,現在給定一個 width:200px的盒子,他的width,padding,border,margin都是怎樣的
html的標簽分哪幾種,列舉一些
img是哪種? 我回答行內。
然后他就問一個img和一個span,里面一段文字,怎么排列。我說上下,img不是行內嗎,怎么會上下。。
如果實現文字環繞排列 img,應該怎么做。圖片 float
這個圖片不定寬高,怎么實現在盒子內垂直水平居中。
flex 2. transform: translate(-50%, -50%) 3. display:table-cell
說一下float這個屬性
你提到了bfc,有兩個盒子,margin重疊的問題,怎么解決
有一個input,怎么統計他的輸入 0/50,除了事件還能怎么統計
css3了解嗎,主要用什么,animation,transition,translate,transform 這四個是干嘛的
實現一個進度條加載,從0 到100
"use strict" 是怎么解析的
setTimeout,setInterval。它的參數,如果在setInterval里5ms不斷調用,會有什么問題嗎
setImmediate 和Process.nextTick 的區別
寫一個檢測數據類型的方法。直接寫了個 Object 的 toString
js 里面的數據類型,把布爾忘了- -
什么是柯理化啊
jquery 用過嗎,
https 了解嗎
https 一定安全嗎,然后怎么解決呢。實現一個站點從 http 到 https 的遷移
localstorage 的跨域問題,最大存儲是多少,超出了會怎么辦
跟 cookie 的區別
sessionStorage 的區別
http的狀態碼,200,500,301,302,304
一個url從瀏覽器輸入到解析經歷了什么
你提到了三次握手,四次揮手是干嘛的
忘了...
二面各種優化
之前做的項目大概介紹一下,技術棧等等
各種項目里的問題
有沒有什么優化的經驗,方案。不局限于打包。
webpack 打包的優化
最近項目解決的一個技術難點
最近在學什么,對什么感興趣
最近做的最成功的一次分享是什么
是不是熱衷于團建。
現在已有 getData(id, callback) 方法,根據 id 發一個請求,并把 data 傳給 callback。你寫一個getDataCache的方法,實現相同的id,只發一次請求,即數據可以被緩存起來。
說一下http緩存,其實就那幾種。
你們用的哪種,我說 304 多一些,為什么不用 200,效率方面 200 更高一些啊。我說的確,我們也是通過 hash 給文件打版本號,結合 maxage,讓瀏覽器判斷要不要重新請求的。
怎么學習前端知識啊
最近在看什么書
除了寫blog,還有什么其他的,工作之外做的
還有幾個忘了
三面三面是一個技術總監,感覺人挺不錯的。
看你之前都是一年一跳槽,是什么考慮呢
為什么要從事前端呢
看你學的是數學,為什么最后學前端。為什么上大學的時候沒好好學
對美團怎么看
問你一個算法題
規律是這樣的:
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92234.html
摘要:獲取的對象范圍方法獲取的是最終應用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據我測試不同環境結果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續更新中……,可以關注下github 項目地址 https:...
摘要:春招前端實習面試記錄從就開始漸漸的進行復習,月末開始面試,到現在四月中旬基本宣告結束。上海愛樂奇一面盒模型除之外的面向對象語言繼承因為是視頻面試,只記得這么多,只感覺考察的面很廣,前端后端移動端都問了,某方面也有深度。 春招前端實習面試記錄(2019.3 ~ 2019.5) 從2019.1就開始漸漸的進行復習,2月末開始面試,到現在四月中旬基本宣告結束。在3月和4月經歷了無數次失敗,沮...
摘要:一基礎接口的意義百度規范擴展回調抽象類的意義想不想通過一線互聯網公司面試文檔整理為電子書掘金簡介谷歌求職記我花了八個月準備谷歌面試掘金原文鏈接翻譯者 【面試寶典】從對象深入分析 Java 中實例變量和類變量的區別 - 掘金原創文章,轉載請務必保留原出處為:http://www.54tianzhisheng.cn/... , 歡迎訪問我的站點,閱讀更多有深度的文章。 實例變量 和 類變量...
摘要:道阻且長啊前端面試總結前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶界面包括地址欄后退前進按鈕書簽目錄瀏覽器引擎用來查詢及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構建的,使用自主研發的渲染引擎,和都使用網絡用來 道阻且長啊TAT(前端面試總結) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶界面- 包括地址欄、后退/前...
閱讀 623·2023-04-26 01:53
閱讀 2749·2021-11-17 17:00
閱讀 2880·2021-09-04 16:40
閱讀 1983·2021-09-02 15:41
閱讀 830·2019-08-26 11:34
閱讀 1222·2019-08-26 10:16
閱讀 1335·2019-08-23 17:51
閱讀 815·2019-08-23 16:50