- 相關(guān)推薦
2015網(wǎng)易前端開發(fā)面試題
9月22日晚收到網(wǎng)易筆試通知,提示歡迎參加23號廣州地區(qū)校招,詳情筆試地點請等詳細通知,結(jié)果一直到23日下午4點半,距離筆試開始只有2個半小時,才收到筆試地點的郵件和短信,這蛋疼得,于是趕在下班高峰期,趕往大學(xué)城華工。又是華工,看來各大企業(yè)都很偏愛大學(xué)城華工啊。投的崗位是杭州研發(fā)院的前端開發(fā)。
半路上買了一個麥當(dāng)勞套餐,下地鐵,換了三次站,在六點半終于趕到了大學(xué)城。A4教學(xué)樓,考場在2樓的一間教室,教室門口貼著一張筆試名單:一張半紙。前端開發(fā)的大概20個,運維的、產(chǎn)品的也都在一張紙上,總共大概100多人,哥驚訝發(fā)現(xiàn)自己排在第一(座位號),大部分筆試者是華工、中大、廣外的,暨大的我只見到3個(百年僑校情何以堪),另外見到一個西安電子科技大學(xué),一個香港中文、一個深大的。廣州其他學(xué)校的幾個學(xué)校的同學(xué)基本沒有,看情況網(wǎng)易這次筆試是直接設(shè)了學(xué)歷檻,不知道有沒有了解情況的朋友?當(dāng)然,廣州這邊的考生一般也不怎么想出省也是一個原因,網(wǎng)易游戲倒是廣州的,可能那個會比較多人吧。
現(xiàn)場還有不少來霸筆的,感覺比正常筆試的還多,工作人員讓正常筆試的排一隊,霸筆的在另一邊再排一隊。跟在場的其他同學(xué)隨便扯了扯,然后拿出手機開 Evernote 看了一下以前整理的前端相關(guān)的一些筆記,7點就進考場了,監(jiān)控的人員胸口掛了一個「智聯(lián)招聘」的牌子,敢情網(wǎng)易把這個筆試是直接外包了。筆試者按照座位號入座,霸筆的被工作人員領(lǐng)到了其他地方。發(fā)試卷了,一張答題卡,一套試卷。這個答題卡,就上面一個「個人信息欄」,下面就是空白,意味著,所有的選擇題、填空題、編程題,都要你自己寫,如果答題卡不夠,可以再要。下面來說說考題。
考什么
總共有兩大部分,第一部分為計算機科學(xué)基礎(chǔ)題,所有技術(shù)崗的筆試者都要答。第二部分為「專業(yè)題」,根據(jù)所報崗位不同而分別出題。
第一部分:計算機科學(xué)基礎(chǔ)題
表示試卷發(fā)下來,我就傻眼了,前面12道選擇題+3道填空題,屬于所有技術(shù)崗位都必須考的計算機專業(yè)基礎(chǔ)題。
由于我不是計算機專業(yè)的,不少計算機科學(xué)很理論化的知識的確是不了解,剛剛搜到CSDN 已經(jīng)有人放出了前面的一部分,自己也就先 COPY 過來吧,解析部分為自己整理,若出錯,請指正。
1.(2分)對于多關(guān)鍵字而言,那種文件組織方便而又高效()
A、順序文件 B、倒排文件 C、散列文件 D、B+樹索引文件
解析:答案 B。
文件在外存上的基本的組織方式有四種:順序組織,索引組織,散列組織和鏈組織;對應(yīng)的的文件名稱分別為:順序文件、索引文件、散列文件和多關(guān)鍵字文件。選擇哪一種文件組織方式,取決于對文件中記錄的使用方式和頻繁程度、存取要求、外存的性質(zhì)和容量。
多關(guān)鍵字文件:包含有多個次關(guān)鍵字索引的文件稱為多關(guān)鍵字文件。
倒排表的主要優(yōu)點是:在處理復(fù)雜的多關(guān)鍵字查詢時,可在倒排表中先完成查詢的交、并等邏輯運算,得到結(jié)果后再對記錄進行存取。這樣不必對每個記錄隨機存取,把對記錄的查詢轉(zhuǎn)換為地址集合的運算,從而提高查找速度。
2.(2分)以下哪些算法可用于遍歷網(wǎng)絡(luò)圖()
A、廣度優(yōu)先搜索 B、深度優(yōu)先搜索 C、線性規(guī)劃策略 D、決策樹
解析:答案 A、B。
廣度優(yōu)先搜索假設(shè)從圖中某個頂點v出發(fā),在訪問了v之后依次訪問v的各個未曾訪問過的鄰接點,然后再分別從這些鄰接點出發(fā)依次訪問它們的鄰接點,并使先被訪問的頂點的鄰接點先于后被訪問的頂點的鄰接點被訪問(因此需要用隊列來存儲頂點),直到圖中所有已被訪問的頂點的鄰接點都被訪問為止。如果此時圖中還有未被訪問的頂點,則另選圖中未被訪問的頂點作為起點,重復(fù)上述過程,直到圖中所有頂點都被訪問為止。
深度優(yōu)先搜索法是樹的先根遍歷的推廣,它的基本思想是:從圖G的某個頂點v0出發(fā),訪問v0,然后選擇一個與v0相鄰且沒被訪問過的頂點vi訪問,再從vi出發(fā)選擇一個與vi相鄰且未被訪問的頂點vj進行訪問,依次繼續(xù)。如果當(dāng)前被訪問過的頂點的所有鄰接頂點都已被訪問,則退回到已被訪問的頂點序列中最后一個擁有未被訪問的相鄰頂點的頂點w,從w出發(fā)按同樣的方法向前遍歷,直到圖中所有頂點都被訪問。
3.(2分)我們使用一個6元組來表示6個節(jié)點的無向圖的頂點數(shù),請問以下哪些6元組是可能的組合()
A、<1,2,3,4,5,6>
B、<2,4,4,2,3,5>
C、<1,3,4,2,2,1>
D、<1,2,2,4,5,2>
解析:
無向圖:一個無向圖(undirected graph)是一個二元組,其中:1.V是非空集合,稱為頂點集。2.E是V中元素構(gòu)成的無序二元組的集合,稱為邊集。
若一個圖中每條邊都是無方向的,則稱為無向圖。
若G是無向圖,則0≤e≤n(n-1)/2
4.(2分)以下關(guān)于可計算性的說法正確的是()
A、 所有問題最終都可以抽象為一個計算模型,圖靈機可以在一個有限的時間(雖然可能會占用非常久的時間)內(nèi)完成計算:現(xiàn)代計算機的設(shè)計正是基于該理論。
B、 存在部分問題,我們無法在有限時間內(nèi),給出解答:但是,所有問題都可以在有限時間內(nèi)驗證其解答的正確性。
C、 Godel(哥德爾)第一定律指明不存在完備且相容的公理系統(tǒng)。
D、 以上說法都不正確。
5.(2分)16進制數(shù)值C396和8進制數(shù)值64474的異或結(jié)果值(10進制)為()
A、43690 B、16660 C、60350 D、20375
解析:
異或:Exclusive OR(異-或運算、模2和),異或(xor)是一個數(shù)學(xué)運算符。它應(yīng)用于邏輯運算。異或符號為“^”。真異或假的結(jié)果是真,假異或真的結(jié)果也是真,真異或真的結(jié)果是假,假異或假的結(jié)果是假。就是說兩個值不相同,則異或結(jié)果為真。反之,為假。 不同為1,相同為0.
若x是二進制數(shù)0101,y是二進制數(shù)1011,則x^y=1110。
只有在兩個比較的位不同時其結(jié)果是1,否則結(jié)果為0
即“相同為0,不同為1”!
6.(2分)以下經(jīng)典的問題哪些屬于NP問題()
A、圖靈停機問題 B、排序 C、0,1背包問題 D、枚舉有限集合的所有子集
7.(2分)存在以下字母串:AGDCCDDDGFBBFFGGDDDGGGEFFDDCCCDDDFGAAA現(xiàn)在需要對該串進行Huffman編碼,那么字母F對應(yīng)bit值(二進制格式為)()
A、10 B、11 C、110 D、101
解析:
//既然現(xiàn)在用電腦,就用 javascript 來解決一下如果數(shù)數(shù)的問題
var temp='AGDCCDDDGFBBFFGGDDDGGGEFFDDCCCDDDFGAAA';
var count=temp.match(/F/g); // 搜索整個字符串匹配字母 F
console.log(temp.length); //字符總長度為36
console.log(count.length);; //輸出的結(jié)果應(yīng)該是6
霍夫曼編碼:(Huffman Coding)是一種編碼方式,是一種用于無損數(shù)據(jù)壓縮的熵編碼(權(quán)編碼)算法,該方法完全依據(jù)字符出現(xiàn)概率來構(gòu)造異字頭的平均長度最短的碼字,有時稱之為最佳編碼。
HC 具體方法:先按出現(xiàn)的概率大小排隊,把兩個最小的概率相加,作為新的概率 和剩余的概率重新排隊,再把最小的兩個概率相加,再重新排隊,直到最后變成1。每次相 加時都將“0”和“1”賦與相加的兩個概率,讀出時由該符號開始一直走到最后的“1”, 將路線上所遇到的“0”和“1”按最低位到最高位的順序排好,就是該符號的霍夫曼編碼。
9.(2分)進程管理如果設(shè)計不當(dāng)將會導(dǎo)致“死鎖”的產(chǎn)生,對待死鎖,典型的銀行家算法屬于(1),而剝奪資源屬于(2)的方法。
A、(1)=死鎖預(yù)防,(2)=死鎖避免
B、(1)=死鎖預(yù)防,(2)=死鎖解除
C、(1)=死鎖避免,(2)=死鎖預(yù)防
D、(1)=死鎖避免,(2)=死鎖解除
解析:答案B
死鎖: 是指兩個或兩個以上的進程在執(zhí)行過程中,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外力作用,它們都將無法推進下去。
系統(tǒng)產(chǎn)生死鎖的四個必要條件:
1)互斥條件:指進程對所分配到的資源進行排它性使用,即在一段時間內(nèi)某資源只由一個進程占用。如果此時還有其它進程請求資源,則請求者只能等待,直至占有資源的進程用畢釋放。
2)請求和保持條件:指進程已經(jīng)保持至少一個資源,但又提出了新的資源請求,而該資源已被其它進程占有,此時請求進程阻塞,但又對自己已獲得的其它資源保持不放。
3)不剝奪條件:指進程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放。
4)環(huán)路等待條件:指在發(fā)生死鎖時,必然存在一個進程——資源的環(huán)形鏈,即進程集合{P0,P1,P2,···,Pn}中的P0正在等待一個P1占用的資源;P1正在等待P2占用的資源,……,Pn正在等待已被P0占用的資源。
銀行家算法:我們可以把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進程向操作系統(tǒng)請求分配資源相當(dāng)于用戶向銀行家貸款。操作系統(tǒng)按照銀行家制定的規(guī)則為進程分配資源,當(dāng)進程首次申請資源時,要測試該進程對資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最大需求量則按當(dāng)前的申請量分配資源,否則就推遲分配。當(dāng)進程在執(zhí)行中繼續(xù)申請資源時,先測試該進程已占用的資源數(shù)與本次申請的資源數(shù)之和是否超過了該進程對資源的最大需求量。若超過則拒絕分配資源,若沒有超過則再測試系統(tǒng)現(xiàn)存的資源能否滿足該進程尚需的最大資源量,若能滿足則按當(dāng)前的申請量分配資源,否則也要推遲分配。
10.(2分)關(guān)于數(shù)據(jù)庫索引,以下說法正確的是()
A、針對某些字段建立索引,能夠有小減少相關(guān)數(shù)據(jù)庫表的磁盤空間占用;
B、針對某些字段建立索引,能夠有效的提升相關(guān)字段的讀與寫的效率;
C、常見數(shù)據(jù)庫管理系統(tǒng),通常使用hash表來存儲索引;
D、數(shù)據(jù)庫索引的存在,可能導(dǎo)致相關(guān)字段刪除的效率降低;
第二部分:專業(yè)題(前端開發(fā))
題型有1.不定項選擇題 12道,2.填空題 5道左右 3.簡答題 4.編程題 5道左右,偏重考察 javascript,編程題要求手寫代碼,其中包含 js 題目3道還是4道,一道給出三切換標簽界面原型圖,要求手寫html+css+javascript實現(xiàn)原型圖和交互效果。由于距離有一段時間了,詳細的題目記不清楚了。就回憶一下幾個知識點吧。
1.簡答題:什么是閉包,閉包有什么用?請舉例說明。
解析:Javascript中,函數(shù)內(nèi)部可以讀取全局變量,函數(shù)外部無法讀取函數(shù)內(nèi)部的局部變量。
function f1(){
var n=1024;
function f2(){
console.log(n)
}
return f2();
}
var foo =f1();
foo();
//以上函數(shù)f2()就是閉包
閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。
2.填空題:apply 和 call 的用法和區(qū)別。
解析:
兩者的作用都是將函數(shù)綁定倒另外一個對象上面去,兩者僅僅在定義參數(shù)方式有所區(qū)別。
來自 MDN 的解釋:NOTE: While the syntax of this function is almost identical to that of apply(), the fundamental difference is that call() accepts an argument list, while apply() accepts a single array of arguments.
apply(thisArg,argArray);
call(thisArg[,arg1,arg2…] ]);
3.bind 函數(shù)的兼容性
解析:
bind方法會創(chuàng)建一個新函數(shù),稱為綁定函數(shù).當(dāng)調(diào)用這個綁定函數(shù)時,綁定函數(shù)會以創(chuàng)建它時傳入bind方法的第一個參數(shù)作為this,傳入bind方法的第二個以及以后的參數(shù)加上綁定函數(shù)運行時本身的參數(shù)按照順序作為原函數(shù)的參數(shù)來調(diào)用原函數(shù).
fun.bind(thisArg[, arg1[, arg2[, ...]]])
4.參考給出的原型圖和要求,手寫 html,css和 js。
【網(wǎng)易前端開發(fā)面試題】相關(guān)文章:
2017網(wǎng)易前端筆試題09-25
前端開發(fā)實習(xí)報告08-01
web前端面試題02-22
web前端開發(fā)求職簡歷01-18
Web前端面試題目及答案09-26
前端面試題庫及答案09-25
前端程序員JavaScript面試題02-19
前端開發(fā)常見面試試題02-14
web前端開發(fā)的自我評價簡歷模板07-18
web前端開發(fā)求職簡歷4篇01-18