溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

node.js中引擎指的是什么

發(fā)布時間:2022-03-23 09:43:26 來源:億速云 閱讀:177 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“node.js中引擎指的是什么”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“node.js中引擎指的是什么”這篇文章吧。

node.js的引擎是“Chrome V8”。Node.js主要由Chrome V8引擎、標準庫和本地模塊組成;其中,V8引擎負責解析和執(zhí)行JavaScript代碼,它將JS代碼直接編譯成原生機器碼,并且使用緩存機制來提高性能。

本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版,DELL G3電腦。

nodejs是什么?

Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境。

Node.js 使用了一個事件驅(qū)動、非阻塞式 I/O 的模型,使其輕量又高效。

簡單的說 Node.js 就是運行在服務(wù)端的 JavaScript,利用JavaScript在服務(wù)端進行編程。

Node.js是一個讓JavaScript運行在服務(wù)器端的開發(fā)平臺,它讓JavaScript的觸角伸到了服務(wù)器端,可以與PHP、JSP、Python、Ruby平起平坐。

Node.js不是一種獨立的語言,與PHP、JSP、Python、Perl、Ruby的“既是語言,也是平臺”不同,Node.js使用JavaScript進行編程,運行在JavaScript引擎上(V8)。

nodejs開發(fā)的構(gòu)成就成利用npm開發(fā)的社區(qū)提供的大量的第三方包加上基本的ECMAScript腳本語言以及node平臺提供的一系列編程接口進行編程。

Node.js 的組成

Node.js 運行時主要由 V8 引擎、標準庫和本地模塊組成,尤其是本地模塊的多少,從底層決定了 Node.js 功能的強弱。

1) V8 引擎

V8 引擎就是 JavaScript 解釋器,它負責解析和執(zhí)行 JavaScript 代碼。

V8 引擎借鑒了 Java 虛擬機和 C++ 編譯器的眾多技術(shù),它將 JavaScript 代碼直接編譯成原生機器碼,并且使用了緩存機制來提高性能,這使得 JavaScript 的運行速度可以媲美二進制程序。

2) 本地模塊

Node.js 集成了眾多高性能的開源庫,它們使用 C/C++ 語言實現(xiàn),比如:

模塊說明
libuv一個跨平臺的、基于事件驅(qū)動的異步 I/O 庫。但是 libuv 不僅限于 I/O,它還提供了進程管理、線程池、信號處理、定時器等其它功能。

Linux 中一切皆文件,這里的 I/O 不僅僅包括文件讀寫,還包括數(shù)據(jù)庫讀寫、網(wǎng)絡(luò)通信(socket)等。
nmpNode.js 包管理器,可以下載包、安裝包、卸載包、更新包、上傳包等。
http_parser一款由C語言編寫的輕量級 HTTP 解析器,用以支持 Web 應用開發(fā)。
zlib工業(yè)級的數(shù)據(jù)壓縮/解壓模塊,Nodejs 借助 zlib 來創(chuàng)建同步、異步或者流式的壓縮/解壓接口。
OpenSSL該模塊提供了經(jīng)過嚴密測試的許多加密/解密功能,現(xiàn)代 Web 依賴這些功能來實現(xiàn)安全性,比如 SSL 協(xié)議和 https 協(xié)議。
c-ares異步 DNS 查詢和解析庫。

Node.js 直接在計算機上運行 JavaScript 代碼,并且要賦予 JavaScript 強大的能力,所以它的本地模塊和瀏覽器中的運行時有很多大區(qū)別,甚至說幾乎沒有什么關(guān)聯(lián)。Node.js 幾乎完全拋棄了瀏覽器,自己從頭構(gòu)建了一套全新的 JavaScript 運行時。

3) 標準庫

本地模塊使用 C/C++ 編寫,而 Node.js 面向 JavaScript 開發(fā)人員,所以必須要封裝本地模塊的 C/C++ 接口,提供一套優(yōu)雅的 JavaScript 接口給開發(fā)人員,并且要保持接口在不同平臺(操作系統(tǒng))上的一致性。

這套 JavaScript 接口,就是 Node.js 標準庫。標準庫是否優(yōu)雅和強大,決定了 Node.js 的易用性,直接影響 Node.js 的市場表現(xiàn)。

小結(jié)

V8 引擎和眾多本地模塊都是現(xiàn)成的,別人已經(jīng)造好了輪子,Node.js 的主要工作就是選擇合適的模塊,將它們集成在一起,并編寫好 JavaScript 接口。

當然,并不是所有的本地模塊都能找到合適的,Node.js 也自己編寫了幾個模塊,典型的代表就是 Libuv。Libuv 是 Node.js 最核心最基礎(chǔ)的模塊,Node.js 完全基于 Libuv 而構(gòu)建。

你可能聽說過 Node.js 采用了基于事件的、單線程的異步 I/O 架構(gòu),這是 Node.js 最大的特點,也是它和其它腳本語言最大的區(qū)別,Node.js 的這種能力就是依賴 Libuv 實現(xiàn)的。

Libuv 如此強大,官方?jīng)Q定將它從 Node.js 中剝離出來,作為一個單獨的網(wǎng)絡(luò)庫發(fā)布,并且開源免費?,F(xiàn)在的 Libuv 已經(jīng)變得非常流行,和傳統(tǒng)的 Libevent 和 libev 庫并稱為“C/C++ 三大網(wǎng)絡(luò)庫”。

Node.js 之所以大名鼎鼎,主要是因為它采用了 V8 引擎和 Libuv 庫:V8 引擎保證了 Node.js 運行高效,Libuv 庫提供了基于事件循環(huán)的異步 I/O 能力。

總結(jié)

Node.js 是一個 JavaScript 運行時,它讓 JavaScript 脫離了瀏覽器環(huán)境,可以直接在計算機上運行,極大地拓展了 JavaScript 用途。我們應該將 JavaScript 和 Python、Java、Ruby 等其它編程語言同等對待,不能再將它視為一種“小玩意”。

最后我們來匯總一下 JavaScript 和 Node.js 的歷史:

  • Netscape 瀏覽器衍生出了 JavaScript 腳本,賦予網(wǎng)頁編程能力;

  • Chrome 瀏覽器衍生了 V8 引擎,提高了 JavaScript 性能;

  • V8 引擎構(gòu)建了 Node.js,拓展了 JavaScript 的編程能力;

  • Node.js 衍生了 Libuv 庫,給網(wǎng)絡(luò)開發(fā)增加了一款優(yōu)秀的工具。

以上是“node.js中引擎指的是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI