如何简单理解Node.js的概念及分清和JS的区别
Admin 2022-10-20 群英技术资讯 1643 次浏览
这篇文章给大家分享的是如何简单理解Node.js的概念及分清和JS的区别。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。在 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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
经历过一些列的函数式编程思想的学习总结,一些重要的高阶函数的学习,以及前一段时间关于 RxJS 的学习。我们再回看一次 —— 组合函数 compose本瓜越来越觉得,【易读】的代码应该是将声明和调用分开来的。根据不同的流程,用函数组合的方式、也可以说它是管道、或者说是链式调用,将声明的函数组合起来,再等待时机进行调用。
这篇文章主要介绍了JavaScript/TypeScript 实现并发请求控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章我们主要了解JS与CSS阻塞的问题,我们知道JS与CSS中都阻塞,但是阻塞不同,JS阻塞DOM树的构建,CSS阻塞页面的显示,接下来我们就详细的了解一下。
这篇文章给大家分享的是JS中设置表格高度的方法和操作。小编觉得挺实用的,因此分享给大家做个参考,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
JavaScript怎么创建多个对象?javascript面向对象创建多个对象的方法,哪个最好用?字面量?工厂模式方法?构造函数方法?原型方法?原型加构造函数方法?进来一看便知。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008