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等)、二进制数据流、加密算法、数据流等等