如何简单理解Node.js的概念及分清和JS的区别
Admin 2022-10-20 群英技术资讯 469 次浏览
在 Node.js 的官方网站的首页中,有这样一句话来描述 Node.js:
Node.js® is a JavaScript runtime built on Chrome"s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
翻译过来的意思就是:
Node.js 是基于 Chrome 的 V8 JavaScript 引擎的 JavaScript 运行时。Node.js 采用事件驱动、非堵塞 I/O 模型,使其轻量化和高效。
上面这句话的第一句说明了什么是 Node.js,第二句说明了 Node.js 的特点。
想要搞懂官方这句话的具体含义,我们还要从 JavaScript 语言说起。
这里假设你已经掌握了 JavaScript 语言的基础语法以及基本使用。如果还没有掌握 JavaScript 的话,还是先去入门一下 JavaScript 语言吧。
掌握了 JavaScript 语言的应该知道,JavaScript 语言是作为浏览器的脚本语言,可以实现网页与用户之间的交互。
什么是交互?比如用户在网页中输入用户名或密码,这种用户输入行为就可以叫做交互。或者用户点击网页中的按钮等等,都可以叫做交互。
JavaScript 语言之所以可以实现网页与用户之间的交互,主要是依靠事件来完成的。比如,用户的输入事件、点击按钮事件等等。
下面我们通过用户点击按钮的行为为例,来看看 JavaScript 语言是如何处理的。
通过上面的分析图,我们可以清晰的看到:
通过这样的一个小案例,我们可以知道 JavaScript 语言处理网页与用户之间的交互,主要是依靠事件驱动。
目前几乎所有的浏览器都支持 JavaScript 语言,之所以支持的原因在于浏览器中都集成了 JavaScript 引擎。
在众多浏览器中,Chrome 浏览器的性能相对更好,而且 Chrome 浏览器集成的 V8 JavaScript 引擎还是开源的。
而 Node.js 就是利用了 Chrome 浏览器的开源 V8 JavaScript 引擎。那在网页中使用 JavaScript 语言和在 Node.js 中使用 JavaScript 语言有什么不同呢?我们可以通过下面这张图来了解一下。
通过上图可以清晰地看到,Node.js 相对于浏览器 Node.js 没有提供 WebKit 内核和 HTML 相关的 UI 技术。也就是说,Node.js 只提供了 JavaScript 语言。
为什么要这样呢?其实,Node.js 的作者最初的想法就是想设计一个轻量和高效的服务器。
那服务器又是什么呢?如果把一个 WEB 应用比作是一个人的话,那服务器就是人的大脑。
通过上面的图我们可以知道,人与人交流时,基本上要通过以下几个步骤:
通过这个过程,我们可以发现,别人是直接通过感官与我交流的,并不知道大脑是如何工作的,也并不关心大脑是如何工作的。
而 WEB 应用与人类似,用户是与网页进行交互,网页将信息传递给服务器,服务器接收、处理并响应,最后网页将结果显示给用户。
作为用户来说,并不关心服务器是如何工作的,甚至用户都感觉不到服务器的存在。但是,作为开发人员,想要开发一个完整的 WEB 应用,服务器的逻辑核心。
从现在开始,我们要从用户思维转变成开发思维。通过开发思维重新审视我们曾经使用过的 WEB 应用,你会发现有所不同。
思维的转变是很重要的!很重要的!很重要的!重要的事儿说三遍。
讲到这里,我们可以简单地来归纳一下 Node.js 到底是什么了。
Node.js 就是基于 Chrome 浏览器的 V8 JavaScript 引擎,以 JavaScript 语言为核心开发语言的服务器技术。
如果使用 Node.js 开发一个 WEB 应用应该是怎么样的呢?
由于 JavaScript 逻辑是依靠事件驱动的,所以就不难理解 Node.js 是事件驱动的了。
想要更好地理解和掌握 Node.js,还是先回去恶补一下 JavaScript 语言中的事件处理那些内容吧!
Node.js 除了是基于 Chrome 浏览器的 V8 引擎以外,还提供了一系列的模块,让我们可以方便地实现一些功能。比如,处理客户端的请求、文件的处理等操作。
我们学习 Node.js,主要就是学习 Node.js 所提供的模块内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了React Ant Design树形表格的复杂增删改操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要为大家详细介绍了JS实现时间选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了如何理解JavaScript中的运算符,帮助大家更好的学习JavaScript,感兴趣的朋友可以了解下
如何理解vue对象的响应式和数组的响应式,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
{//使用IntelliSense了解相关属性。//悬停以查看现有属性的描述。//欲了解更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"ty
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008