node.js是一個基於 Chrome V8 引擎的 JavaScript 運行時環境。
一、類比JavaScript和java
JavaScript | java |
---|---|
V8 | JVM |
node.js | JRE |
- JavaScript和java都是一門編程語言,至於兩者的關系,是雷鋒和雷峰塔的關系
- V8是google開源的JavaScript引擎,用於執行JavaScript,類似JVM執行java字節碼。在node.js誕生之前,V8是內置於Chromium中的,現在也內置於node.js中
- node.js=V8+內置基本模塊(大多用JavaScript編寫),類似JRE=JVM+java標准庫
- node.js誕生之前,JavaScript只能運行於瀏覽器,現在也可以在服務器端運行於node.js
二、翻譯一段Quora回答
下面翻譯一段Quora上What is the difference between JavaScript and Node.js問題下Mattias Petter Johansson的回答。
- JavaScript是一門語言
- node.js不是一門語言,也不是一種特殊的JavaScript方言 - 它僅僅就是用於運行普通JavaScript代碼的東西
- 所有瀏覽器都有運行網頁上JavaScript的JavaScript引擎。Firefox有叫做Spidermonkey的引擎,Safari有JavaScriptCore,Chrome有V8
- node.js就是帶有能操作I/O和網絡庫的V8引擎,因此你能夠在瀏覽器之外使用JavaScript創建shell腳本和后台服務或者運行在硬件上
三、瀏覽器端和服務器端JavaScript組成區別
瀏覽器端:
- ECMAScript,描述了JavaScript語言的語法和基本對象
- 文檔對象模型(DOM),描述處理網頁內容的方法和接口
- 瀏覽器對象模型(BOM),描述與瀏覽器進行交互的方法和接口
服務器端:
- ECMAScript
- node.js內置模塊:文件系統I/O、網絡(HTTP、TCP、UDP、DNS、TLS/SSL等)、二進制數據流、加密算法、數據流等等