新手:JavaScript VS Node JS

新手:JavaScript VS Node JS,javascript,node.js,Javascript,Node.js,如果JavaScript文件在浏览器中加载和执行,那么服务器如何知道该文件何时是节点js文件,从而在服务器上执行 web浏览器和NodeJ都运行javascript脚本。主要区别在于NodeJS是一个服务器端框架,在服务器中执行javascript代码,而不是在web浏览器(客户端)的环境中执行 没有任何像nodejs文件这样的概念。只有javascriprt脚本可以在客户端(借助于web浏览器中内置的JavaScript引擎,如V8 for chrome)或服务器(借助于NodeJS的帮助)上

如果JavaScript文件在浏览器中加载和执行,那么服务器如何知道该文件何时是节点js文件,从而在服务器上执行

web浏览器和NodeJ都运行javascript脚本。主要区别在于NodeJS是一个服务器端框架,在服务器中执行javascript代码,而不是在web浏览器(客户端)的环境中执行


没有任何像nodejs文件这样的概念。只有javascriprt脚本可以在客户端(借助于web浏览器中内置的JavaScript引擎,如V8 for chrome)或服务器(借助于NodeJS的帮助)上运行。顺便说一句,如果我没记错的话,NodeJS使用的JavaScript引擎是V8,谷歌的JavaScript引擎。

JavaScript是一种语言。node.js不是一种语言,而是运行普通JavaScript的“环境/软件集”

所有浏览器都有运行网页JavaScript的JavaScript引擎(Spidermonkey用于Firefox,V8用于Chrome)


Node.js只是与一些库捆绑在一起的V8引擎,用于进行I/O和联网,这样您就可以在浏览器之外使用JavaScript(例如,创建后端服务)。

我认为在混乱的情况下,具体的示例比概念解释更有效。那么,就拿这个例子来说:

您有一个名为“hello.js”的Node.js脚本(当然是JavaScript),它只在控制台中打印“hello World!”并退出。您可以通过键入
node hello.js
来运行此脚本。它将只打印消息并退出

您还有另一个名为“server.js”的Node.js脚本,它实现了一个HTTP服务器(也称为web服务器),用于侦听端口3000。此服务器提供名为“static”的目录中的静态文件。这个文件夹中有两个文件:“index.html”和“app.js”。这些是网站的文件(当然app.js是JavaScript格式的)。您可以通过键入
node server.js
来运行此脚本。它将启动HTTP服务器并开始等待客户端请求


当HTTP服务器脚本运行时,您可以访问“”以访问上面启动的web服务器。服务器知道如何提供非静态文件,并且知道默认情况下应该提供index.html。您的浏览器加载index.html,处理它,并理解它也应该返回并请求app.js文件(因为index.html中有
标记)。当浏览器加载app.js时,浏览器将运行它。Node.js服务器不关心任何事情,只是将其作为另一个静态文件提供。

最后一段是我所看到的最好的解释。简洁且非常有用。谢谢