首頁技術文章正文

Node.js起源?Node.js有哪些特點?

更新時間:2021-11-02 來源:黑馬程序員 瀏覽量:

IT培訓班

Nodejs是個在服務器動可以解析和執(zhí)行JavaScript代碼的運行環(huán)境,也可以說是一個運行時平臺,仍然使用JavaScript作為開發(fā)語言,但是提偶了一些功能性的API,例如文件操作和網(wǎng)絡通信API等。

Nodejs是由 Ryan Dahl 于2009年5月推出的最初版本,Ryan Dahl 是一名專注于實觀高性晚Web服務器的優(yōu)化專家,他將Chrome瀏覽器的V8引擎單獨移植出來,在此基礎之上,為其上層的JavaScnpr提供了友好的API,供開發(fā)人員使用,而且完全開源免費。

Node.js的特點和優(yōu)勢

Node.js作為一門新興的后臺語言平臺,旨在幫助程序員快速構建可伸縮的應用程序。自發(fā)布以來,廣受開發(fā)人員關注,Node.js之所以這么受歡迎歸功于它的一些吸引人的特點。

具體如下:

(1)它是一個JavaScript 運行環(huán)境:Node.js作為運行環(huán)境可以讓JavaScript 脫離瀏覽器,在服務器端單獨執(zhí)行,如果客戶端和服務器端使用相同的開發(fā)語言,可以在很大程度上達到客戶端和租務器端代碼的共用。

(2)依賴于Chrome V8 引擎進行代碼解析:Chrome V8負責在非瀏覽器解析情況下解析JavaScript 代碼。

(3)事件驅(qū)動(Event-Driven):對于事件密動來說,在學習JavaScript的初級階段。都會接觸到事件,如onclick、onload等,這些事件通常會綁定在某個頁面元素上,然后為其指定事件處理函數(shù),當事件被觸發(fā)時才會執(zhí)行相應的處理函數(shù)。可以說這樣的事件處理機制就是標準的事件驅(qū)動機制。

(4)非阻塞I/O(non-blocking L/O):提到非阻塞I/O,首先有必要了解一下阻塞L/O,I/O(Input/Output)表示輸入/輸出操作,阻室I/O可以理解為被阻塞了的輸入/輸出操作。在服務器端有很多會涉及阻塞LO的操作,例如在讀取文件的過程中,需要等待文件讀取完畢后才能繼續(xù)執(zhí)行后面的操作,Node.js中使用事件同調(diào)的方式來解決這種阻塞l/O的情況,避免了阻塞I/O所需的等待,所以說它具有非阻塞l/O的特點。

(5)輕量,可伸縮,適于實時數(shù)據(jù)交互應用:在Node.js中,Socket可以實現(xiàn)雙向通信,例如聊天室就是實時的數(shù)據(jù)交互應用。

(6)單進程,單線程:進程就是一個應用程序的一次執(zhí)行過程,它是一個動態(tài)的概念:而線程是進程中的一部分,進程包含多個線程在運行。單線程就是進程中只有一個線程,阻塞1/O模式下一個線程只能處理一個任務:而非阻塞1/O模式下,一個線程永遠在處理任務,這樣CPU的利用率是100%,Nodej采用單線程,利用事件驅(qū)動的異步編程模式,實現(xiàn)了非阻塞I/O。




猜你喜歡:

Node.JS下載與安裝詳細教程

什么是watch偵聽器?watch偵聽器基本語法

什么是前端工程化?它有哪些優(yōu)點和好處?

使用精靈圖的核心要義是什么?為什么使用精靈圖?

黑馬程序員HTML&JS+前端開發(fā)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!