一、 浏览器端js
1 功能
主要帮助html+css等完成交互动作,例如在前端小白在做html、css练习时,一般不需要安装nodejs环境,也可以捎带使用一些javascript代码完成操作。
2 编译引擎
一般是浏览器自带的运行网页上JavaScript引擎,各浏览器承载引擎如下:
Mozilla – Spidermonkey-
Chrome – v8
Safari – JavaScriptCore
IE、Edge – – Chakra
PhantomJS – JavaScriptCore
node – v8
不同解释器对JS代码的处理都要符合ES规范。
3 相关库
特有的webAPI,例如文档对象模型(DOM),描述操作页面元素的方法和接口;浏览器对象模型(BOM),描述操作浏览器的方法和接口;Ajax请求接口等。
二、 服务器端js(nodejs)
1 功能
主要完成一些服务器操作,操作OS操作系统、file文件系统、net网络、database数据库等。nodejs使得Javascript可以脱离浏览器运行。
2 编译引擎
是对chrome V8引擎进行了封装的运行环境,简单说nodejs就是把浏览器的解释器封装起来作为服务器运行平台,用类似javascript的结构语法进行编程,在nodejs上运行。
3 相关库
特有的服务端API。例如文件系统、http请求、操作系统、加密算法、数据流等,详见 Nodejs的api库
三、其他异同点
node和JS都遵循es6规范,比如与数据类型的定义、语法结构,内置对象。但在js中的顶层对象是window对象,但是在node中没有什么window对象,node中的顶层对象是global对象。