您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

node.js的引擎是什么

2024/5/28 18:39:38发布29次查看
node.js的引擎是“chrome v8”。node.js主要由chrome v8引擎、标准库和本地模块组成;其中,v8引擎负责解析和执行javascript代码,它将js代码直接编译成原生机器码,并且使用缓存机制来提高性能。
本教程操作环境:windows7系统、nodejs 12.19.0版,dell g3电脑。
nodejs是什么?
node.js 是一个基于 chrome v8 引擎的 javascript 运行环境。
node.js 使用了一个事件驱动、非阻塞式 i/o 的模型,使其轻量又高效。
简单的说 node.js 就是运行在服务端的 javascript,利用javascript在服务端进行编程。
node.js是一个让javascript运行在服务器端的开发平台,它让javascript的触角伸到了服务器端,可以与php、jsp、python、ruby平起平坐。
node.js不是一种独立的语言,与php、jsp、python、perl、ruby的“既是语言,也是平台”不同,node.js使用javascript进行编程,运行在javascript引擎上(v8)。
nodejs开发的构成就成利用npm开发的社区提供的大量的第三方包加上基本的ecmascript脚本语言以及node平台提供的一系列编程接口进行编程。
node.js 的组成
node.js 运行时主要由 v8 引擎、标准库和本地模块组成,尤其是本地模块的多少,从底层决定了 node.js 功能的强弱。
1) v8 引擎
v8 引擎就是 javascript 解释器,它负责解析和执行 javascript 代码。
v8 引擎借鉴了 java 虚拟机和 c++ 编译器的众多技术,它将 javascript 代码直接编译成原生机器码,并且使用了缓存机制来提高性能,这使得 javascript 的运行速度可以媲美二进制程序。
2) 本地模块
node.js 集成了众多高性能的开源库,它们使用 c/c++ 语言实现,比如:
模块说明
libuv 一个跨平台的、基于事件驱动的异步 i/o 库。但是 libuv 不仅限于 i/o,它还提供了进程管理、线程池、信号处理、定时器等其它功能。
linux 中一切皆文件,这里的 i/o 不仅仅包括文件读写,还包括数据库读写、网络通信(socket)等。
nmp node.js 包管理器,可以下载包、安装包、卸载包、更新包、上传包等。
http_parser 一款由c语言编写的轻量级 http 解析器,用以支持 web 应用开发。
zlib 工业级的数据压缩/解压模块,nodejs 借助 zlib 来创建同步、异步或者流式的压缩/解压接口。
openssl 该模块提供了经过严密测试的许多加密/解密功能,现代 web 依赖这些功能来实现安全性,比如 ssl 协议和 https 协议。
c-ares 异步 dns 查询和解析库。
node.js 直接在计算机上运行 javascript 代码,并且要赋予 javascript 强大的能力,所以它的本地模块和浏览器中的运行时有很多大区别,甚至说几乎没有什么关联。node.js 几乎完全抛弃了浏览器,自己从头构建了一套全新的 javascript 运行时。
3) 标准库
本地模块使用 c/c++ 编写,而 node.js 面向 javascript 开发人员,所以必须要封装本地模块的 c/c++ 接口,提供一套优雅的 javascript 接口给开发人员,并且要保持接口在不同平台(操作系统)上的一致性。
这套 javascript 接口,就是 node.js 标准库。标准库是否优雅和强大,决定了 node.js 的易用性,直接影响 node.js 的市场表现。
小结
v8 引擎和众多本地模块都是现成的,别人已经造好了轮子,node.js 的主要工作就是选择合适的模块,将它们集成在一起,并编写好 javascript 接口。
当然,并不是所有的本地模块都能找到合适的,node.js 也自己编写了几个模块,典型的代表就是 libuv。libuv 是 node.js 最核心最基础的模块,node.js 完全基于 libuv 而构建。
你可能听说过 node.js 采用了基于事件的、单线程的异步 i/o 架构,这是 node.js 最大的特点,也是它和其它脚本语言最大的区别,node.js 的这种能力就是依赖 libuv 实现的。
libuv 如此强大,官方决定将它从 node.js 中剥离出来,作为一个单独的网络库发布,并且开源免费。现在的 libuv 已经变得非常流行,和传统的 libevent 和 libev 库并称为“c/c++ 三大网络库”。
node.js 之所以大名鼎鼎,主要是因为它采用了 v8 引擎和 libuv 库:v8 引擎保证了 node.js 运行高效,libuv 库提供了基于事件循环的异步 i/o 能力。
总结
node.js 是一个 javascript 运行时,它让 javascript 脱离了浏览器环境,可以直接在计算机上运行,极大地拓展了 javascript 用途。我们应该将 javascript 和 python、java、ruby 等其它编程语言同等对待,不能再将它视为一种“小玩意”。
最后我们来汇总一下 javascript 和 node.js 的历史:
netscape 浏览器衍生出了 javascript 脚本,赋予网页编程能力;
chrome 浏览器衍生了 v8 引擎,提高了 javascript 性能;
v8 引擎构建了 node.js,拓展了 javascript 的编程能力;
node.js 衍生了 libuv 库,给网络开发增加了一款优秀的工具。
更多node相关知识,请访问:nodejs 教程!
以上就是node.js的引擎是什么的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product