這篇文章主要介紹了node.js常見(jiàn)面試題有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)于2013年開(kāi)始,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元天門(mén)做網(wǎng)站,已為上家服務(wù),為天門(mén)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
1、舉例說(shuō)明你最喜歡的HTTP框架及其原因
這題沒(méi)有唯一的答案。本題主要考察被面試者對(duì)于他所使用的Node框架的理解程度, 考察他是否能夠給出選擇該框架的理由,優(yōu)缺點(diǎn)等。常用的HTTP框架你可以參考這個(gè)網(wǎng)站。
2、什么是錯(cuò)誤優(yōu)先的回調(diào)函數(shù)?
錯(cuò)誤優(yōu)先的回調(diào)函數(shù)用于傳遞錯(cuò)誤和數(shù)據(jù)。第一個(gè)參數(shù)始終應(yīng)該是一個(gè)錯(cuò)誤對(duì)象, 用于檢查程序是否發(fā)生了錯(cuò)誤。其余的參數(shù)用于傳遞數(shù)據(jù)。例如:
fs.readFile(filePath, function(err, data) {
if (err) {
//handle the error
}
// use the data object
});
解析:這個(gè)題目的主要作用在于檢查被面試者對(duì)于Node中異步操作的一些基本知識(shí)的掌握。
3、如何避免回調(diào)地獄
你可以有如下幾個(gè)方法:
模塊化:將回調(diào)函數(shù)分割為獨(dú)立的函數(shù);
使用Promises;
使用yield來(lái)計(jì)算生成器或Promise;
解析:這個(gè)問(wèn)題有很多種答案,取決你使用的場(chǎng)景,例如ES6, ES7,或者一些控制流庫(kù)。
4、哪些工具可以用來(lái)保證一致性的代碼風(fēng)格
你可以選擇如下的工具:
JSLint <http://jslint.com/>
JSHint <http://jshint.com/>
ESLint <http://eslint.org/>
JSCS <http://jscs.info/> - 推薦
在團(tuán)隊(duì)開(kāi)發(fā)中,這些工具對(duì)于編寫(xiě)代碼非常的有幫助,能夠幫助團(tuán)隊(duì)開(kāi)發(fā)者強(qiáng)制執(zhí)行規(guī)定的風(fēng)格指南, 還能夠通過(guò)靜態(tài)分析捕獲常見(jiàn)的錯(cuò)誤。
解析:用于檢查被面試者是否有大型項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn)。
5、使用NPM有哪些好處?
通過(guò)NPM,你可以安裝和管理項(xiàng)目的依賴,并且能夠指明依賴項(xiàng)的具體版本號(hào)。 對(duì)于Node應(yīng)用開(kāi)發(fā)而言,你可以通過(guò)package.json文件來(lái)管理項(xiàng)目信息,配置腳本, 以及指明項(xiàng)目依賴的具體版本。
解析:它能考察面試者使用npm命令的基礎(chǔ)知識(shí)和Node.js開(kāi)發(fā)的實(shí)際經(jīng)驗(yàn)。
6、什么是Stub?舉個(gè)使用場(chǎng)景
Stub是用于模擬一個(gè)組件或模塊的函數(shù)或程序。在測(cè)試用例中, 簡(jiǎn)單的說(shuō),你可以用Stub去模擬一個(gè)方法,從而避免調(diào)用真實(shí)的方法, 使用Stub你還可以返回虛構(gòu)的結(jié)果。你可以配合斷言使用Stub。
舉個(gè)例子,在一個(gè)讀取文件的場(chǎng)景中,當(dāng)你不想讀取一個(gè)真正的文件時(shí):
var fs = require('fs');
var readFileStub = sinon.stub(fs, 'readFile', function (path, cb) {
return cb(null, 'filecontent');
});
expect(readFileStub).to.be.called;
readFileStub.restore();
在單元測(cè)試中:Stub是完全模擬一個(gè)外部依賴,而Mock常用來(lái)判斷測(cè)試通過(guò)還是失敗。
解析:用于測(cè)試被面試者是否有測(cè)試的經(jīng)驗(yàn)。如果被面試者知道什么是Stub, 那么可以繼續(xù)問(wèn)他是如何做單元測(cè)試的。
7、什么是測(cè)試金字塔?
測(cè)試金字塔指的是: 當(dāng)我們?cè)诰帉?xiě)測(cè)試用例時(shí),底層的單元測(cè)試應(yīng)該遠(yuǎn)比上層的端到端測(cè)試要多。
當(dāng)我們談到HTTP API時(shí),我們可能會(huì)涉及到:
有很多針對(duì)模型的底層單元測(cè)試;
但你需要測(cè)試模型間如何交互時(shí),需要減少集成測(cè)試;
解析:本文主要考察被面試者的在測(cè)試方面的經(jīng)驗(yàn)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“node.js常見(jiàn)面試題有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
新聞標(biāo)題:node.js常見(jiàn)面試題有哪些
網(wǎng)頁(yè)URL:http://www.rwnh.cn/article40/ghsoeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、關(guān)鍵詞優(yōu)化、面包屑導(dǎo)航、建站公司、軟件開(kāi)發(fā)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)