Nodejs面試28題


Nodejs面試28題


Nodejs面試28題

大家好,這一期呢,我們來看一下nodjs的面試題。

第1題, 什麼是nodejs?我們在哪裡使用它?

Nodejs是服務器端的一門技術。它是基於Google V8 JavaScript引擎而開發的。用來開發可擴展的服務端程序。

第2題,為什麼要使用node js?

nodejs會讓我們的編程工作變得簡單,它主要包含如下幾點幾個好處:

執行快速。

永遠不會阻滯。

JavaScript是通用的編程語言。

異步處理機制。

避免並行所帶來的問題。

第3題,nodejs有哪些特點?

是單線程的,但是有很高的可擴展性,使用JavaScript作為主流編程語言。使用的是異步處理機制和事件驅動。處理高效。

第4題, Set immediate和set time out 區別在哪裡?

Set immediate就是馬上執行的意思。Set time out, 時間參數傳為0,也想獲得同樣的功能。只不過前者要快一些。

第5題,如何更新nodejs的版本?

npm install npm -g

第6題,為什麼nodejs是單線程的?

Nodejs使用的是單線程沒錯,但是通過異步處理的方式,可以處理大量的數據吞吐量,從而有更好的性能和擴可擴展性。

第7題,什麼是回調函數?

回調函數是指用一個函數作為參數傳入另一個函數,這個函數會被在某個時機調用。

第8題, 什麼叫做回調地獄?

回調地獄是由嵌套的回調函數導致的。這樣的機制會導致有些函數無法到達,並且很難維護。

第9題,如何阻止回調地獄?

有三種方法, 對每個錯誤都要處理到, 保證代碼的貫通, 程序代碼模塊化。

第10題,解釋一下repl的作用?

Read evaluate print loop, 用於測試,調試和實驗用。

第11題,API函數的類型有哪些?

有兩種,

一種是阻滯型函數。阻滯型函數會等待操作完成以後再進行下一步。

另外一種是非阻滯型函數。這種函數使用回調函數來處理當前函數獲取的結果。

第12題,回調函數的第1個參數是什麼?

通常是錯誤對象。如果這個參數為空,表示沒有錯誤。

第13題,NPM的作用是什麼?

Node package manager, 主要有兩個功能。

它是一個網端模塊的存儲介質。

它的另一個作用是安裝程序依賴和版本管理。

第14題,nodejs和ajax的區別是什麼?

Nodejs和ajax也就是asynchronous JavaScript and xml,都是通過JavaScript來表現的,但是他們的目的截然不同。

Ajax是設計用來動態的更新頁面的某個區域,從而不需要更新整個頁面。

Nodejs是用來開發客戶服務器類型應用的。

第15題,解釋一下nodejs中chaining.

Chaining是指從一個數據流到另一個數據流的鏈接,從而實現多個流操作。

第16題,什麼是streams?解釋一下有哪些類型?

流的概念是不間斷的,它可以不間斷的從某個地方讀取數據,或者向某個地方寫入數據。

有4種類型的流數據。可讀,可寫。既可讀,又可寫,轉化。

第17題,退出代碼是什麼?有哪些退出代碼?

退出代碼是指中斷nodejs運行時返回的代碼。

有這麼幾種unused, uncaught fatal exception, fatal error, non function internal exception handler, internal exception handler run time failure,internal JavaScript evaluation failure.

第18題, 什麼是globals?

有三個global的關鍵字。

Global代表的是最上層的命名空間,用來管理所有其他的全局對象。

Process 是一個全局對象,可以把異步函數轉化成異步回調, 它可以在任何地方被訪問,它主要是用來返回系統的應用信息和環境信息.

Buffer, 是用來處理二進制數據的類.

第19題, Angular js和node js的區別是什麼?

Angular js是網絡應用開發框架,而nodejs是一個實時系統。

第20題, 為什麼統一的風格兒非常重要,有什麼工具可以保證這一點?

統一的風格可以讓所有的組成員按照一種規矩來寫代碼。工具有Standard和eslint.

第21題, 用什麼方法來處理沒有被處理的異常?

在應用和node js之間使用domain來處理這樣的異常。

第22題, Node js是如何支持多處理器平臺的?

Cluster模塊是用來支持這方面的。它可以允許多個nodejs工作進程運行在相同的端口上。

第23題, 如何配置開發模式和生產模式的環境?

首先有一個配置文件,然後通過環境變量參數來獲取對應的配置內容。

第24題, nodejs中跟時間相關的函數有哪些?

Set time out, clear time out.

Set interval, clear interval.

Set immediate, clear immediate.

Process.nextTick.

第25題, 解釋一下什麼是reactor pattern。

Reactor pattern主要是非阻滯的i/o操作。提供一個回調函數來關聯io操作。io請求完成以後會不會提交給demultiplexer, 這是一個通知接口用來處理併發性的非阻滯的io操作,這個功能是通過查詢一個event loop來實現的.

第26題,lts版本是什麼意思?

也就是long term support版本。至少會被支持18個月。使用的是偶數來標識。這種版本有穩定性和安全性的保證。

第27題,你為什麼需要把express APP和server分開?

分開以後方便維護以及測試,在測試某個模塊的時候,尤其是APP模塊的時候,你不需要去對網絡方面的連接配置做工作。

第28題,next tick和setImmediate的區別是什麼?

Next tick會等待當前的event執行完成或者下一輪兒事件循環到達再執行。

Set immediate, 會在下一輪的事件循環中,執行回調並且返回當前的循環來做讀寫操作.


分享到:


相關文章: