我刚开始说堆栈,在学习NodeJS的时候,我想出了下面这个让我思考的声明
Node.js是一个非常强大的基于JavaScript的框架/平台,建立在Google的JavaScript V8引擎之上。
但这到底意味着什么?
建立在谷歌Chrome的JavaScript V8引擎之上。
如果它是建立在Chrome的JS V8引擎上,为什么它也能在火狐上工作呢?
发布于 2016-12-30 17:07:45
平均堆栈,从后到前重新组织:
因此,Node.js不能“在火狐上工作”(谷歌Chrome上也不起作用):这是一种服务器端技术。可以把它看作是Python/Ruby/Java在这个角色中的替代品。因此,它可以/确实响应来自各种客户端的请求(比如Google和Firefox)。
“构建在V8之上”的意思是,它使用与Google相同的JavaScript解释器/即时编译器。但是与chrome的相似之处就在这里了:节点没有呈现引擎/css解析器/DOM,但是在服务器中确实有您需要的东西,比如HTTP库和文件系统API。
而且,我无意冒犯:我们都是从你所在的地方开始的,事实上你甚至在问这个问题(这也不是件坏事!)意味着堆上的建筑就像恶棍一样在你头上。文档将假设您知道一些您似乎不知道的事情。在尝试将数据库和框架混为一谈之前,我强烈建议您通过一些教程和基本测试应用程序来加深对JavaScript和Node的理解。
发布于 2016-12-30 17:11:24
为了让计算机执行编程语言,需要将其转换为机器能够理解的格式(通常称为机器代码)。Javascript也没什么不同。当浏览器在网站上显示Javascript代码时,需要编译一些东西,或者在Javascript的情况下,将指令解释为机器代码。
V8是由谷歌开发的,正是为了做到这一点。当您使用Chrome并检测页面上的Javascript时,它会将其传递给V8以运行编译,然后您的计算机执行生成的代码。
V8是由谷歌开源的。Node的创建者Ryan修改了源代码,这样V8就可以在Chrome之外和像Linux或MacOS这样的操作系统中使用。这就是你的第一句话的意思。
这里要注意的是,您不是在浏览器中执行Node程序,而是使用实际使用的计算机执行Node程序。V8和火狐、Safari、IE等没有任何关联。所有这些浏览器都有自己的Javascript解释器。
发布于 2016-12-30 17:09:36
好吧,让我们来讨论一下:
Node.js是一个非常强大的基于JavaScript的框架/平台,建立在Google的JavaScript V8引擎之上。
JavaScript是一种用于internet浏览器的编程语言。我认为,它是由NetScape于1995年发明的,并于1996年提交给了一个名为ECMA的认证机构。
ECMA采用了JavaScript最初的思想,并制定了一个标准ECMAScript,每个JavaScript实现都应遵循该标准。你看,JavaScript不是一种仅仅存在于以太中的语言--每个互联网浏览器都有自己的语言实现----这意味着JavaScript通常只在诸如Mozilla、Safari、Opera或Chrome等互联网浏览器中工作,例如。(Internet还附带了ECMAScript的实现,但出于许可原因,他们称它为JScript )
Google附带的JavaScript的实现运行在功能强大的V8引擎上,该引擎是用一种名为C++的语言编写的。V8解释您的JavaScript代码并提供它的所有变量类型、管理内存等等。V8的优点是它是开源的,可以嵌入到任何其他C++程序中。
因此,Node的创建者想要通过添加服务器需要的功能来获取V8并对其进行增强--读取文件、响应请求、路由等。这意味着,由于Node.js应用程序解释了您的代码,并将其进一步转换为C++和后来的机器代码,现在可以使用JavaScript编程网站的服务器端实现。的重要区别在于,Node.js不运行在浏览器中!,它运行在服务器上,就像使用PHP编写后端代码时一样。
https://stackoverflow.com/questions/41399772
复制相似问题