寫在前面的話
筆者從17年的2月份開始準備春招,其中遇到不少坑,也意識到自己走過的彎路。故寫了這篇文章總結一番,本文適合主動學習的,對自己要學的課程不明確的,對面試有恐懼癥的...等將來打算從事技術崗位的同學們。
正文開始
為什么要準備校招?社招不一樣能夠進入大公司嗎?對于一些不懂校招這個概念的人來說,經常會問這個問題。同時,大公司的校招薪水一般比工作2年經驗社招的人還高,為什么企業會給一個沒經驗的應屆畢業生這么高的薪水?理由何在?理清這些問題之前,我們先來看看校招是一個什么概念?
校園招聘是企業直接從學校招聘各類各層次應屆畢業生。校招每年時間比較固定,即春季校招(三四月份)和秋季秋招(九到十二月份)。在原則上,春季校招大部分崗位是面向大三與研二(研三畢業)的同學,對這部分的同學提供實習的崗位。少部分企業由于秋招簽約率不高或者業務劇增,會針對大四與研三的同學進行補招。
而秋季秋招主要針對大四與研三的同學(這里以每年的九月份來分隔年級),對這部分同學提供的是畢業之后的正職工作。拿到秋招offer的同學,如確定入職需與用人單位簽署三方協議,以保證雙方的利益不受損失。
有校招需求的企業一般是發展規模較為成型的企業,不論是成熟運作的傳統企業,或年輕但已然龐大的互聯網公司。在較為成熟的企業管理下,分工細致,完善地各種福利補貼制度,以及專業的導師制培養人才的策略,這些因素無疑能帶給應屆生們更好的成長。
同時,應屆生在校空閑時間多,能學的東西更多,工作之后業務繁多能真正擠出來自主學習的時間太少,計算機基礎的課程篇幅過多,出來工作之后就沒時間、沒精力學了。
而這些計算機基礎課程卻是成為業界大牛的必經之路,沒學這種基礎知識,很多東西的底層原理我們是沒辦法摸透的,這也是為什么互聯網BAT大廠重視計算機基礎的一個原因。
基礎扎實工作之后很多東西很快就可以上手,所以很多互聯網大廠寧愿把招聘精力放在校招,而不是社招;其二,應屆生作為新鮮血液一般還沒有成家,固然能為公司做更大的貢獻。
如何準備校招?
既然校招這么重要,那我們應該怎么準備校招呢?
要想在校招中取勝,筆者覺得有幾個方面是比較重要的:視野+專注+方法論+心態
1.視野
視野的開闊指對一件事物認知的廣度,要對業界有一定的了解,才能明確我們的求知方向;否則一味地蠻干,最后只會南轅北轍。舉個例子:對于非一本學校的某些同學來說,可能都不知道校招是怎么一回事,身邊的老師也沒有跟同學們灌輸這些思想,不關注技術社區的同學可能就不知道。導致的后果就是不清楚大廠注重的是哪方面的知識(大廠考察的知識一般來說對技術發展很有意義),水平停滯不前,最后畢業去了家不太理想的公司。
很多東西都是這樣,身邊的人不可能全部傳授給你,需要你帶著一份熱情不斷地去挖掘。我們可以在空閑的時間里,去各種技術社區以及一些問答平臺上刷刷動態從而不斷地開闊我們的視野,比如說:在知乎平臺上我們可以看到某些前輩的回答,一般這種回答都具有建設性意義,有時候拋開一些現成的觀念,去接受一些新觀念何妨不是一件好事呢?
同時,我們可以在社交平臺上結交一些應屆生“大佬”,詢問他們各種學習方法,一般“大佬”都會很熱情的幫助你。混熟了以后,可以跟“大佬”交流下面試心得、學習心得等等的東西,不得不說與同類型的人交流是成長最快的一種方式。
2.專注
專注是指在技術方面投入的時間成本。我們都不是圣人,只有不斷地去學習與訓練才能更大程度地去提升自我。當我們對一件事物有熱情時,我們都愿意把所有時間花在它上面。就如我們看上了一個漂亮的女生,對她產生好感了,我們會想盡一切辦法去討好她。
在技術方面也是這樣的,對于我們不感興趣的方向我們從不會主動地去學習,保持對技術的熱情才能達到持續的產出。有一句話說的好:時間花在哪里,成就就在哪里。A同學在課后每天都花8小時專研技術,而B同學每天只在課堂上學習。很明顯這兩人的差距只會越來越大,放心地去努力吧,付出了肯定會有回報的,回報未到只是時候未到。
專注還指對某一領域的專注程度。我們應該對自己以后想從事的職位有一個大概的方向,從而對這個方向應具備的技能進行鉆研。有時候看到部分同學既寫前端代碼,又寫PHP后端代碼,又寫一點硬件底層C語言代碼,精力太分散了到最后很難做到每樣東西都精通。大廠對應屆生的要求還不至于做到全棧工程師的程度,能做到熟悉一領域的開發已經很不錯了,當然懂的越多是一個加分項(但非必備)。
反觀大廠對應屆生的要求是熟悉計算機專業的必修課,諸如:數據庫原理、操作系統原理、數據結構與算法、計算機網絡等,這類知識可能比較枯燥學起來沒什么勁,但卻是必備的,其能為以后工作發展鋪路。當然每個崗位所要求的側重點不同,但卻百變不離其宗。對這種基礎知識要學到哪種程度呢?
是不是考試考到80分以上就代表這門課掌握得不錯呢?不是這樣的,考試的考點是有局限性的,我們應該通過看一些巨獻讀物來全面學習。看完之后我們可以通過看別人的面試經歷(后面簡稱“面經”)來檢測自己是否掌握這些知識點。
對于不會的知識點,建議大家可以過一遍書本的內容,書本講的內容一般比較詳細。不建議通過搜索引擎查詢這種與理論相關的內容,因為大部分搜出來的結果都是摘抄書本的文字。面試服務端開發時,經常會被問到數據庫索引的底層實現原理。很多同學可能會問:“為什么要搞懂這些原理性的東西?我會怎么用不就行了嗎?”。只懂使用API的人永遠是搬運工,工程師最大的使命是去創造,研究原理的時候我們能了解到先人的設計初衷,從而能更快速地在線上出現性能問題的時候根據原理排查問題。
3.方法論
要想達成某個目標都有其特定的方法論,學習技術也不例外,掌握適當的學習方法才能事半功倍。
我們需要形成一個完整的知識體系,強烈建議大家讀一些巨獻讀物,其講的內容很詳細,不會漏掉某些知識點。
讀完一章節后建議大家可以做做筆記,堅持讀完一本書你會發現受益匪淺,以下是一些巨獻讀物的推薦:
JavaScript
- JavaScript高級程序設計(入門前端必讀讀物)
- 你不知道的JavaScript系列(帶你探索JavaScript的黑魔法)
- JavaScript設計模式與開發實踐(讓你的代碼錦上添花)
計算機網絡
- 圖解HTTP(Web開發必會)
- 計算機網絡(第五版)作者:謝希仁
數據結構
- 網易云課堂浙大的數據結構課程(推薦,基礎視頻,每節課的配套題目必須獨立完成)
- 大話數據結構(推薦,但是感覺不如浙大的視頻講解)
- 算法4(推薦,書籍代碼是Java語言,不影響理解)
算法
- 劍指offer(看完之后你會發現面試會遇到原題)
- 程序員代碼面試指南(作者:左程云,里面講的比劍指深入一點)
- LeetCode(看完劍指可以進階算法)
數據庫:
- 數據庫概論(基礎,重在了解概念)
- MySQL必知必會
- 高性能MySQL
在準備面試的時候可以上牛客網的討論區看看面經,了解一下面試可能會被問到的問題,對于不會的問題要查漏補缺。當你看完好幾篇面經你會發現面試很多問題都是重復的,也就是說這些問題是必須掌握的。同時,可以不斷地向更深的層次學習,比如看看源碼的實現等等,這些深層次的東西是面試的加分項。
平時的積累也很重要,做項目或者學習知識點的時候可以把心得分享到博客上,一個好處是可以重新梳理知識點,在這個過程中你會對這些知識點印象更加深刻,同時也會給面試加分,面試官看了你的博客之后可以看出你是一個持續學習的人,這將會加大你面試的通過率。
另個好處是在分享的過程中,可以提升自身的表達能力,畢竟把事情講清楚與心里懂事情是怎么回事是兩碼事,這也為之后公司的內部分享會奠定基礎。
4.心態
在準備校招的過程中難免會遇到一些困難,比如:書本的內容看不懂,這時候可以從搜索引擎里搞清楚一些名詞的意思,再把這些名詞帶入書本中反復地去理解。遇到困難的時候要保持一種愈戰愈勇的心態,面試的過程也難免會失利,不要氣餒。這時候的重點是把面試被問到不會的知識點搞清楚,爭取下次被問到的時候能答上來。
關于簡歷
書寫簡歷也是門學問,優秀的簡歷能在內推批次脫穎而出直通面試。
- 能縮減的信息盡量縮減,比如一些專業必修課的課程就沒有必要寫上去
- 個人信息一定要寫全,如姓名,電話,郵箱,求職意向(加分項:持續產出的博客與github)
- 項目介紹用一句話概述,著重點在于技術點的描述,建議用一些顯著性的數字注明成果(經過xxx,性能提高了30%等)
- 對于業務型的項目,不要把那些CURD的功能寫出來(太low了千篇一律),這種項目在編碼的時候要多思考,看看哪些卓越的技術點可以提煉出來
- 獲獎情況方面可以把一些有代表性的比賽及名次寫進去,最好不超過3個
關于簡歷投遞
簡歷投遞有幾個比較重要的階段:提前批、正式批、補招。建議大家前期要廣投各種企業,這能一定幾率地增大面試的可能性。面試多了就有了面試的感覺,拿offer的幾率會更大,后期我們能更好地選擇offer。
1.提前批
無論是春招還是秋招,提前批都會在校招正式開始前的1~2個月開始內推,一般互聯網大廠都有提前批。提前批一般需要在職人員內推,有師兄師姐在名企可以讓其幫忙推薦。沒有的話也無需擔心,一旦有內推在牛客網討論區總會出現各種信息,把簡歷投到帖子的郵箱里也可以進行內推。在提前批里只要你的簡歷通過了篩選就能直通面試了,這就是為什么要提前準備校招。
2.正式批
正式批需要在校園招聘的官網上申請,一般來說會比提前批多一輪線上或線下的筆試,只有筆試過了才能有面試的資格。校招招聘信息可以在梧桐果查看,里面還有宣講會一欄,錯過了提前批的同學可以找到符合自己需求的公司的宣講會時間,某些公司在宣講會結束后會進行當場的筆試,一般現場筆試通過后,第二天會進行現場的面試。
3.補招
由于某些“收割機”的棄坑,這時候某些崗位可能還會有幾個空缺的名額。招聘的形式與提前批相似,也通過員工內部推薦,簡歷通過后會進行面試。
關于實習
最后說說找實習的事情,建議大家提前一年準備春招,這樣拼進互聯網知名大廠(百度、阿里、騰訊、滴滴、美團、京東等等)的可能性很大。實習的工作地點無非太在意,實習最重要的是鍍金,有互聯網知名大廠的實習經歷,在秋招找工作是非常吃香的。
因為實習經歷絕大多數情況下決定了你的能力,HR在篩簡歷時就會認為你既然能被上一家大廠所認可,你的能力肯定不會差到哪里去,就會讓你無需筆試直通面試,這樣在秋招提前批拿到offer的幾率更大!
校招面經
以下是我的校招面經:
8月11日網易游戲(33分鐘)
- 塊級元素和行內元素的區別
- 行內塊級元素是什么東西?
- HTML語義化的理解和作用
- 盒子模型
- 元素的水平和垂直居中
- 三欄布局,左右定寬,中間自適應
- JavaScript的基本數據類型,
0 == null
嗎?為什么? - AJAX實現原理
- 跨域怎么做
- 移動端怎么做優化?動畫如何做加速?
- 如何做首屏加速的?
- 移動端適配的3種方案
- 單頁應用的路由內部原理怎么做的?自己實現過SPA嗎?
- 了解過canvas和WebGL嗎?
- 如果讓你做IE7兼容,你怎么做?(從html,css,js方面說)
- 我們網易游戲要做一個交互性很強的移動端界面,你有什么思路嗎?
8月15號有贊(18分鐘)
- 介紹項目,技術難點
- 性能優化
- 圖片懶加載怎么做的(getBoundingClientRect)
- 懶加載的滾動如何做優化(函數節流)
- cookie除了key與value還有哪些參數
- 做過后端吧?如何判斷區分一個用戶的身份?
- session的生成規則?sessionid的生成規則?
8月16號CVTE(26分鐘)
- 介紹項目
- 項目用REM布局吧?REM如何做自適應的?
- 知道哪5種設計模式嗎?
- Vue雙向綁定的原理(說了對象和數組的監測)
- AMD是什么?解決什么問題?了解AMD,CMD,UMD嗎?AMD與CMD的區別?啥叫依賴前置?
- BootStrap的柵格系統實現原理?(說了bs3和bs4的)
- 什么是原型鏈
- 三欄布局,左右定寬,中間自適應(說了5種)
- 性能優化
8月17號百度-網頁搜索部(52分鐘)
- 自我介紹
- 項目都用Vue是吧,說說Vue的MVVM如何交互的?
- 知道Vue監測變量如何實現的嗎?
- VueRouter用哪些API實現的?改變hash參數會引起視圖的更新嗎?
- 說說你項目中實現的Dialog組件?提供了哪些API?如何設計這些API的?
- 用過AJAX吧?說說AJAX是干什么用的?如何實現AJAX?
- 說說你了解的垃圾回收機制
- 綁定事件有哪幾種方式?
addEventListener
有哪些參數?冒泡跟捕獲有什么區別? - 來道算法題吧,在一個數組中求連續最大的累加和
- 居中可以使用哪幾個屬性?不定寬度與定寬度如何居中?
- position有哪些屬性,都是何意思?
- 啥是閉包?用來干嘛的?
- CSS有了解過如何做動畫嗎?
animation
有哪些參數? - HTTP狀態碼
- HTTP緩存
- Git常用操作?
merge
與rebase
有什么區別? - 了解過
linux
嗎? - 看你是廣東人啊,能接受到京城工作嗎?我說,聽說你們百度深圳也有研發中心,能幫我調配到深圳嗎?他說可以。
8月17號CVTE(35分鐘)
- 為什么選擇做前端
- 介紹項目
- 為什么要用Vue框架?(我答學習成本低,同學推薦)他問有比較其他框架嗎?(我答木有,因為不知道他們的區別...)
- 題1(說遞歸前要先判斷是否是引用類型,是的話直接
return x1 == x2
,個人覺得意義不大)//對比兩個參數是否相等, diff(1, 1) // true diff(1, '1') // false diff({name: 'cvte'}, {name:'cvte'}) // true diff({name: 'cvte'}, {name:'seewo'}) //false function diff(){ }
- 題2(實現了功能,他說setTimeout有延遲,要根據播放器的時間來計算,坑,題目根本沒有播放器這個變量)
// 設計一個數據結構來存儲 歌詞和對應的時間, // 并實現一個function run ,執行run之后,在對應的時間輸出對應的歌詞
- setTimeout執行機制(eventLoop)
- 接下來將會學習哪方面(我說刷算法,因為算法這東西工作后就學不到了)
- 了解WEB安全嗎(XSS、CSRF)
- 項目中有針對WEB安全做防御嗎?
8月18號百度(19分鐘)
- 跨域
- 數據庫有哪些引擎
- 數據庫如何實現回滾
- HTTP緩存
- 平時如何學習Vue底層原理的
- 說一種你覺得牛逼的設計模式
- 知道Promise是用來干嘛的嗎?Promise底層如何實現的?為什么要用
setTimeout
去模擬。
想不到數據庫問的那么深了。。更下面經緩和下,希望能過二面。
8月22號CVTE(大約20分鐘)
- 最近有面哪些公司?面到哪個階段了?有其他公司的offer嗎?
- 畢業后最期望加入哪些企業?為什么?
- 對上班時間的看法
- 說說你家庭的情況?性格,職業,對你的影響
- 說說你未來的人生規劃
- 你賺錢是為了什么?
- 說說對你最有影響力的人
- 什么情況下會拒絕CVTE的offer
- 什么情況下會離開CVTE
- 描述一下你最近覺得比較壓抑的事情?你是如何調整自己的狀態的
- 對上兩面給自己的表現打分,為什么打這個分?你覺得自己哪些地方做的不夠好
- 說說你實習的經歷。為什么會離開實習那家公司。
- 你期望的畢業入職薪資是多少?為什么?
- 你目前會關注哪些企業?
- 你對工作地點有什么看法?
京東
- 為什么選前端?
- 介紹一個你覺得做的最好的項目
- 在做項目遇到過什么問題
- 怎么解決click 300ms的問題
- fastclick內部實現(自己把自己帶進坑里面了,我說聽過這個庫)
- 1px border的問題?(沒說清楚)為什么會產生?怎么解決?還有什么解決方案
- touch有哪些事件?tap是原生事件嗎?(的確沒搞過,直接說不會)
- HTTP狀態碼(502突然忘記了)
- 304緩存
- eTag跟哪個字段一起用?(忘記了是If-None-Match)
- 閉包的定義與作用
- 閉包會產生什么問題?我說內存泄露,他問還有嗎(沒回答全)
- 原生Ajax的過程
- readyState有哪幾種值,分別代表什么
- es6如何發異步請求? fetch與ajax有啥區別(沒回答全)
- Promise與setTimeout哪個先執行?為什么(順序答錯了,不過事件循環發生的時機答對了)
- 性能優化方式
- 跨域有哪些方式?window.name有什么問題?(windwname沒答出缺陷)
- Get與Post有啥區別?哪個更快?
- 不定寬高3種垂直水平居中。
- 盒子模型
- position取值,啥是stickty
9月27號網易游戲
- 兩個棧實現一個隊列
- 快排思想,手寫快排
- 數組里有N個偶數個相同的數,只有一個奇數個相同的數,找出這個數
- 數組中的項是1-100連續的數,把任意一個數變為-1,找出這個數
- 有三個柜子,每個抽屜都有兩個球,第一個抽屜是2個黑球;第二個抽屜是2個白球;第三個是1個白球和1個黑球。求一個抽屜拿到黑球的情況下,另一個球是白球的概率
- 假設一對夫妻生小孩的觀念是這樣的,如果第一次生到的是男孩,則不繼續生了;如果第二次生到的是女孩,繼續生到有男孩為止。求世界男女比例
- 什么是原型鏈
- 看代碼說輸出結果,并說原因。
var F = function () {} var f = new F() console.log(f.__proto__) console.log(f.__proto__.__proto__) console.log(f.__proto__.__proto__.__proto__)
- 說說有哪些請求方法,越多越好
- GET與POST有啥區別
- 介紹一個你覺得做的最好的項目
- 為什么離開了實習的公司?
- 為什么會投網易游戲的前端
- 實習中各人員怎么分工的
- 對于產品改動需求有遇到過嗎?怎么解決這個問題?有收到成效嗎?
- 玩過什么游戲?這游戲怎么樣的?你玩到哪個程度?充了多少錢?
- 大學真的一點游戲都沒玩嗎?為什么?
- 介紹一個你覺得最有難度的項目
- 為什么用Vue不用其他框架
- 用Vue的原因
- 說說Vue的優勢
- 看過源碼是吧?說說你對Vue哪種機制最熟悉?并說說其源碼實現過程
- 會測試崗位怎么看,如果調劑你到測試崗位,你愿意嗎?
- 對其他開發崗位怎么看?
- 你期望年薪是多少?
微眾銀行
- 除了前端方向,我們還有大數據和JAVA方向,你對哪個有意向?
- Vue2有哪些新特性?雙向綁定如何實現?
- 項目有遇到什么問題?我說1px border在retina屏幕中會加粗,被打斷了
- 設計一個微信服務器與開發者的交互,判斷是否有權限操作
迅雷
- 介紹一個最近做的一個項目
- 做項目的時候遇到過什么問題
- 閉包,如何防止IE下的內存泄露
-
undefined
與null
的區別。舉個用到undefined
與null
的例子 - 介紹一下HTTP協議與HTTP Ruquest
- HTTP緩存
- Last-Modified的時間如何生成的
- GET與POST的區別
- 我說到POST會發送兩次數據包的時候,反問我,你這個是從哪里看的?確定是官方說的?如果POST的數據量很少的時候呢?也會分兩次發嗎?為什么?
- 我說到GET參數暴露到url上不安全,而POST更安全,他反問你不會裝包嗎?都能裝到包為什么還安全?GET與POST的區別到底在哪里,為何這兩者要區分開。如何防止數據被抓包
- 我說到GET的傳輸數據包的體積與POST的不同,反問我,你確定GET只能傳4K?有什么辦法使GET能傳輸與POST一樣大小的數據包容量?
- HTTP2有什么新特性?多路復用中,HTTP2能兼容HTTP1.1的請求嗎?比如:會請求多個域名服務器,有些請求是HTTP1的有些請求是HTTP2的?這樣子合法嗎?
- 性能優化
- 數組去重,說出哈希表法的時間復雜度與空間復雜度。hash表查找的過程時間復雜度是多少,為什么?
- 如何防止非本地域名腳本的惡性注入?(兩種方法)
- 如何防范CSRF攻擊(兩種方法)
- MVC、MVVM的交互流程
- typeof有哪些返回值
- 跨域方式
- 繼承的6種方法
- cookie與Web Storge的區別?如何在IE下存儲4M的數據
- 說輸出結果題1
console.log(typeof ('a' - 1))
- 說輸出結果題2
for (var i = 0;i < 3;i++) { setTimeout(function () { console.log(i++) }, 0) console.log(i) }
- 說輸出結果題3
function bar() { return foo foo = 2 function foo() {} var foo foo = 'string' } console.log(bar())
- restful
- 交換排序與堆排序的時間復雜度是多少
- 1~100000個連續的數,隨機取出兩個數。不能用特定的數據結構,不能用數組方法找出這兩個數
WPS
- 介紹項目
- 介紹BFPRT算法
- null是什么?與undefined的區別
- 說出結果,null > 0,null >= 0,null == 0。并說出原因
- 寫出匹配IP的正則表達式
- 寫出觀察者模式,如果要刪除某個依賴呢
- new運算符做了什么?寫出代碼
- new中的this是何時生成的
- 實現一個類
- 實現繼承,如何處理重復生成了兩個相同的實例屬性
- Object.create()內部做了什么?
- 什么是函數?函數為什么可以當參數傳遞
- 寫一個開頭不能連續出現abc的正則,不區分大小寫
- 線程與進程的區別
- 磁盤讀取速度為什么比內存讀取速度慢
- tcp三次握手
- DNS如何找IP
- HTTP借用了TCP的哪些優點
- HTTP的Content-Type可能取的值?設置哪個值是以json的格式去傳輸
- AJAX實現過程
美團
- 如何做出五角星并居中
- 使用Math.random()的點怎樣才能等概率地落到等邊三角形中
- 實現這樣一個功能:
sum(2, 3) // 5 sum(2)(3) // 5
- 0.068如何轉化成6.8%,這其中有什么坑?要怎么處理?
- 說說JavaScript的數據類型
- 如何判斷是否是Array
- 如何判斷是NaN
- 如何實現一個手表,如果是實現一個計秒器呢?
- setTimeout發生在什么時刻,如何避免延遲?
- 說說項目的難點以及遇到的問題
- 說說v-model的實現原理
- 如何實現v-model的單向綁定
- 如何實現跨組件的通信,比如點擊一個按鈕,要使另一個組件中背景色改變
- 如何實現跨頁面的通信,需求同上
- 如何實現跨域頁面的通信,需求同上
- 如何實現跨iframe且跨域頁面的通信?
- 字符串反轉不能用輔助API
- 兩個有序數組合并成一個有序數組
- 兩個無序數組合并成一個有序數組的兩種方式,并說說這兩種方式最優的時間復雜度是多少,過程是如何求出來的?
- http構成
- https原理
- 為啥要用非對稱加密
- 客戶端是如何驗證證書的合法性的?
- 瀏覽器如何渲染界面
- 什么是reflow與repaint?哪個性能消耗大
- 如何避免reflow?
- 看《JavaScript高級程序設計》的時候覺得哪塊最難理解?講一下
- 講解你項目中遇到的難點?
- 你博客主要寫什么內容?發個地址來看看
- 對什么排序熟悉?我說快排。那來道非遞歸的快排吧
- 看你博客寫了TCP的內容,說說TCP與UDP的區別
- TCP如何實現擁塞控制的?一發生網絡堵塞,為什么把擁塞窗口重新設置為1。設置為1,這個發送流量不是很小了嗎,這不是前后矛盾了嗎?
- 智力題:有N個物品,其中有一個是很輕的,有一個天平,用最少的次數找出這個輕的物品
富途(3月14號)
- 說說原型
- 以下代碼中
F
與f
與F.prototype
與它們之間是什么關系
function F() {}
var f = new F()
-
f.constuctor
是什么?f
自身存在constuctor
嗎?為什么? - JavaScript如何實現繼承
- 繼承之后的
child.constuctor
是什么值 -
console.log(f.prototype)
的結果是什么 - 兩個升序的數組,判斷一個數組中是否包含另一個數組的所有項?還有更優的解決方案嗎?原來的時間復雜度是多少,現在的復雜度是多少?
- 以下代碼怎么輸出?為什么會這樣?如何改善?setTimeout為什么在最后輸出?
for (var i = 0; i < 3; i++)
setTimeout(function () {
console.log(i)
}, 0)
- 說說HTTP緩存
- 瀏覽器怎么判斷是否是強緩存過期,整個過程是怎么樣的?協商緩存具體整個過程?
- 返回200狀態碼后,還會重新發送一次請求來獲取文件嗎?
- Web安全
- TCP與UDP有什么區別?
- HTTP與HTTPS有啥區別?HTTPS握手過程?HTTPS都是怎么加密的?具體點哪里對稱加密哪里非對稱加密
- 狀態碼301與302有啥區別?
- 說說cookie與session
- cookie與離線存儲的區別
- 求第n大的數?時間復雜度多少?
- 雅虎的N條軍規你知道嗎?
- 什么是跨域?怎么解決跨域問題?
- 為什么要把資源文件放在另一個服務器中?除了服務器壓力的問題呢?還有沒有其他?
- 實現對cookie的分離,像淘寶cookie很多,把資源文件放在另一個域名中,可以減少主服務器的cookie
- 優化下載,HTTP協議對同一個域名的下載線程數有限制
- 實現了動靜分離。當多個域名引入同一個靜態資源時可以統一引用靜態資源服務器
- 如何破解驗證碼?
- 有一堆猴子與一堆桃子,若這些猴子每人分3個桃子,最后剩下59個桃子。若每人分5個桃子,最后一個猴子分到<5個桃子,求有多少個猴子與桃子
- 服務器突然很卡你會怎么排查?如果看日志看不出問題呢?如果看內存看不出問題呢
- 怎么設計分頁接口的參數?若以id為自增唯一索引,有什么缺陷?那用什么當唯一索引比較好?
- 使用uuid生成唯一值做索引
- 一個Room類里面有Door,一個User類,只有主人才能開這個door。問這個開door的函數是放在Room類?還是放在User類?
- C語言結構體題,補空寫程序
- 有什么愛好?
- 形容下自己的性格
- 說說你對富途的了解
- 有哪些offer?拒了哪些offer?他們薪資是多少?
3月19號(荔枝FM)
- 說出輸入
function fn() {
return function () {
return inner
var inner = 3
inner = 'a'
function inner() {}
}
}
- 寫出
Function.prototype.bind
的polyfill - 輸出
z-index
屬性的元素排布,層疊上下文,還有什么屬性可以使z-index
生效 - 有四個接口
/a
,/b
,/c
,/d
。找出一個相應時間最快的接口,并返回這個時間 - 寫個彈窗組件,有title,body,cancelText,confirmText參數。可以通過on來綁定回調,與及通過off解綁。
var dialog = new Dialog()
dialog.on('show', function () {
console.log('showing')
})
dialog.on('hide', function () {
console.log('hideing')
})
dialog.show() // showing
dialog.hide() // hideing
- 兩欄布局一邊定寬一邊自適應的多種方法
- 介紹BFC
- 如何解決跨域問題
- 服務器如何監測是否跨域
- 我不想每次進來都重新加載這個文件,有什么辦法
- Vue父子組件如何通信,跨級組件呢,不用Vuex呢?
- 如何與后端協作?在后端沒有做出接口的時候,怎么套數據?在線上有接口的時候,怎么套數據?
追一科技(3月20號)
- 聊了1個半鐘與技術相關的宏觀問題。。。
- 如何實現微信電腦端登錄的功能?
- 一個猴子,一共有100根香蕉,每次最多能拿50根,回家有50m,每走1m需要消耗1根香蕉。問最多帶多少根香蕉回家?