微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何理解Node.js和JavaScript的关系

一、Javascript的引擎

浏览器一般有两个引擎,一个是Html引擎,一个是脚本引擎。

JavaScript是一种脚本语言,最初用于浏览器的动态显示,方便操作页面数据和内容。但实际上,它也可以在浏览器外运行(如服务器端),就像C、C++、Java语言一样,因此,它是一种开发语言。

我们知道,Java的运行环境是Jvm,而JavaScript的运行环境是JavaScript引擎。

但JavaScript没有标准的运行环境(或称为引擎),我们所熟知的浏览器都有各自的脚本引擎,如:Mozilla的引擎叫TraceMonkey;Safari的引擎叫Squirrelfish Extreme,Google Chrome的引擎目前是V8(可能是最新版本,但我也不清楚,因为2009年Node.js诞生时,就用的是V8引擎)

总结:JavaScript运行在脚本引擎下。

二、Node.js是什么

后来由于Google Chrome V8引擎的出现,大大提高了JavaScript的运行效率(几乎与本地代码有一样的执行效率),使人们看到了脚本语言的强大。基于这个原因,Commonjs诞生,并试图制定一套JavaScript规范,使其可以应用在普通应用程序。Commonjs的终极目标是制定一套像C++类库一样的规范,使各类应用可以像调用C++标准库一样,调用JavaScript标准库。

而Node.js就是实现了部分Commonjs规范的一个服务器端应用(非浏览器应用)。

因此很重要的一个概念就是,Node.js是一个应用,而不是一个JavaScript运行环境。它像浏览器一样,可以解析执行JavaScript脚本,但不是运行在浏览器环境下,而是运行在操作系统环境下。或者说它和浏览器是一个并列的性质,都是操作系统下的一个应用。

Node.js的一个目标是成为像Apache一样的应用服务器,并要比它的性能更高。

总结:Node.js是一个Web应用服务器。

三、Node.js与Javascript的关系

Node.js与浏览器端的Javascript(尤其是像现在的Vue.js等前端开发工具),没有一毛钱的关系。

总结:Node.js与浏览器端的JavaScript没有任何关系。

 

以上很多概念来自于《Node.js开发指南》一书,但不是原文摘抄,是以自己的理解和便于初学者理解做的解释。本文主要用于理解Node.js是做什么的,作为自己的一个学习记录,如有不同见解,欢迎大家留言。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐