传统意义上,Javascript是由ECMAScript,文档对象模型(DOM),浏览器对象模型(BOM)组成的,而Mozilla则指出Javascript由Core Javascript和Client Javascript组成。
NodeJs是一个让Javascript运行在浏览器之外的平台,此处所指的Javascript只是Core Javascript,或者说是ECMAScript的一个实现。它实现了诸如文件系统、模块、包、操作系统API、网络通信等Core Javascript没有或者不完善的功能。
NodeJs的Javascript引擎是V8,来自google chrome项目,V8号称是目前世界上最快的Javascript引擎。
Node.js不运行在浏览器中,所以也就不存在Javascript的浏览器兼容性问题,你可以放心的使用Javascript语言的所有特性。
Javascript为客户端而生,Node.js为网络而生。
使用Node.js可以开发:
具有复杂逻辑的网站
基于社交网络的大规模Web应用
WebSocket服务器
TCP/UDP套接字应用程序
命令行工具
交互式终端程序
带有图形用户界面的本地应用程序
单元测试工具
客户端Javascript编译器
NodeJS内建了HTTP服务器,也就是说你可以轻而易举的实现一个网站和服务器的组合,这和PHP、Perl不一样,因为使用PHP的时候,必须先搭建一个Apache之类的HTTP服务器,然后通过HTTP服务器的模块加载或CGI调用,才能将PHP脚本的执行结果呈现给用户。而当你使用NodeJs的时候,不用额外搭建一个HTTP服务器,因为NodeJs本身就内建了一个。这个服务器不仅可以用来测试代码,而且它本身就可以部署到产品环境,它的性能足以满足要求。
标准化-ECMAScript
最初Javascript并没有一个标准,因此在不同浏览器之间有各种各样的兼容性问题,在1996年,Javascript标准由诸多软件厂商共同提交给ECMA(欧洲计算机制造商协会),ECMA通过了标准ECMA-262,也就是ECMAScript。
CommonJS规范
为了统一Javascript在浏览器之外的实现,CommonJS诞生了,CommonJS试图定义一套普通应用程序使用的API,从而填补Javascript标准库过于简单的不足。CommonJS的终极目标是制定一个像C++标准库一样的规范。