您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“node.js中引擎指的是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“node.js中引擎指的是什么”這篇文章吧。
node.js的引擎是“Chrome V8”。Node.js主要由Chrome V8引擎、標準庫和本地模塊組成;其中,V8引擎負責解析和執行JavaScript代碼,它將JS代碼直接編譯成原生機器碼,并且使用緩存機制來提高性能。
本教程操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。
nodejs是什么?
Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環境。
Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。
簡單的說 Node.js 就是運行在服務端的 JavaScript,利用JavaScript在服務端進行編程。
Node.js是一個讓JavaScript運行在服務器端的開發平臺,它讓JavaScript的觸角伸到了服務器端,可以與PHP、JSP、Python、Ruby平起平坐。
Node.js不是一種獨立的語言,與PHP、JSP、Python、Perl、Ruby的“既是語言,也是平臺”不同,Node.js使用JavaScript進行編程,運行在JavaScript引擎上(V8)。
nodejs開發的構成就成利用npm開發的社區提供的大量的第三方包加上基本的ECMAScript腳本語言以及node平臺提供的一系列編程接口進行編程。
Node.js 的組成
Node.js 運行時主要由 V8 引擎、標準庫和本地模塊組成,尤其是本地模塊的多少,從底層決定了 Node.js 功能的強弱。
1) V8 引擎
V8 引擎就是 JavaScript 解釋器,它負責解析和執行 JavaScript 代碼。
V8 引擎借鑒了 Java 虛擬機和 C++ 編譯器的眾多技術,它將 JavaScript 代碼直接編譯成原生機器碼,并且使用了緩存機制來提高性能,這使得 JavaScript 的運行速度可以媲美二進制程序。
2) 本地模塊
Node.js 集成了眾多高性能的開源庫,它們使用 C/C++ 語言實現,比如:
模塊 | 說明 |
---|---|
libuv | 一個跨平臺的、基于事件驅動的異步 I/O 庫。但是 libuv 不僅限于 I/O,它還提供了進程管理、線程池、信號處理、定時器等其它功能。 Linux 中一切皆文件,這里的 I/O 不僅僅包括文件讀寫,還包括數據庫讀寫、網絡通信(socket)等。 |
nmp | Node.js 包管理器,可以下載包、安裝包、卸載包、更新包、上傳包等。 |
http_parser | 一款由C語言編寫的輕量級 HTTP 解析器,用以支持 Web 應用開發。 |
zlib | 工業級的數據壓縮/解壓模塊,Nodejs 借助 zlib 來創建同步、異步或者流式的壓縮/解壓接口。 |
OpenSSL | 該模塊提供了經過嚴密測試的許多加密/解密功能,現代 Web 依賴這些功能來實現安全性,比如 SSL 協議和 https 協議。 |
c-ares | 異步 DNS 查詢和解析庫。 |
Node.js 直接在計算機上運行 JavaScript 代碼,并且要賦予 JavaScript 強大的能力,所以它的本地模塊和瀏覽器中的運行時有很多大區別,甚至說幾乎沒有什么關聯。Node.js 幾乎完全拋棄了瀏覽器,自己從頭構建了一套全新的 JavaScript 運行時。
3) 標準庫
本地模塊使用 C/C++ 編寫,而 Node.js 面向 JavaScript 開發人員,所以必須要封裝本地模塊的 C/C++ 接口,提供一套優雅的 JavaScript 接口給開發人員,并且要保持接口在不同平臺(操作系統)上的一致性。
這套 JavaScript 接口,就是 Node.js 標準庫。標準庫是否優雅和強大,決定了 Node.js 的易用性,直接影響 Node.js 的市場表現。
小結
V8 引擎和眾多本地模塊都是現成的,別人已經造好了輪子,Node.js 的主要工作就是選擇合適的模塊,將它們集成在一起,并編寫好 JavaScript 接口。
當然,并不是所有的本地模塊都能找到合適的,Node.js 也自己編寫了幾個模塊,典型的代表就是 Libuv。Libuv 是 Node.js 最核心最基礎的模塊,Node.js 完全基于 Libuv 而構建。
你可能聽說過 Node.js 采用了基于事件的、單線程的異步 I/O 架構,這是 Node.js 最大的特點,也是它和其它腳本語言最大的區別,Node.js 的這種能力就是依賴 Libuv 實現的。
Libuv 如此強大,官方決定將它從 Node.js 中剝離出來,作為一個單獨的網絡庫發布,并且開源免費。現在的 Libuv 已經變得非常流行,和傳統的 Libevent 和 libev 庫并稱為“C/C++ 三大網絡庫”。
Node.js 之所以大名鼎鼎,主要是因為它采用了 V8 引擎和 Libuv 庫:V8 引擎保證了 Node.js 運行高效,Libuv 庫提供了基于事件循環的異步 I/O 能力。
總結
Node.js 是一個 JavaScript 運行時,它讓 JavaScript 脫離了瀏覽器環境,可以直接在計算機上運行,極大地拓展了 JavaScript 用途。我們應該將 JavaScript 和 Python、Java、Ruby 等其它編程語言同等對待,不能再將它視為一種“小玩意”。
最后我們來匯總一下 JavaScript 和 Node.js 的歷史:
Netscape 瀏覽器衍生出了 JavaScript 腳本,賦予網頁編程能力;
Chrome 瀏覽器衍生了 V8 引擎,提高了 JavaScript 性能;
V8 引擎構建了 Node.js,拓展了 JavaScript 的編程能力;
Node.js 衍生了 Libuv 庫,給網絡開發增加了一款優秀的工具。
以上是“node.js中引擎指的是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。