nodejs和v8引擎的关系

先来看下nodejs的定义http://nodejs.cn/learn/introduction-to-nodejs

通过定义,我能得到的结果是:

        1.nodejs是运行js的一个平台;

        2.nodejs在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)

        3.单个进程中运行,一组异步的 I/O 原语,使用非阻塞范式编写;

第一点,无需解释,就是字面意思了;

第二点,就是我说的重点,在说重点之前我先普及一个知识点,反正我是才知道的((⊙﹏⊙)b),那就是,浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。之前我只知道nodejs用的Google v8引擎;也知道各大浏览器厂商的浏览器都有自己的内核(具体内容请自行百度),可万万没想到原来v8这个“渲染引擎”就是它的内核的意思!

这里主要再说下Google Chrome,提到Chrome浏览器,一般人会认为使用的Webkit内核,这种说法不完全准确。Chrome发布于2008年,使用的渲染内核是Chromium,它是fork自Webkit,但把Webkit梳理得更有条理可读性更高,效率提升明显。2013年,由于Webkit2和Chromium在沙箱设计上的冲突,谷歌联手Opera自研和发布了Blink引擎,逐步脱离了Webkit的影响。所以,可以这么认为:Chromium扩展自Webkit止于Webkit2,其后Chrome切换到了Blink引擎。另外,Chrome的JS引擎使用的V8引擎,应该算是最著名和优秀的开源JS引擎,大名鼎鼎的Node.js就是选用V8作为底层架构。

而Blink引擎和V8引擎又是什么关系的?Blink 是 Google Chrome 浏览器的渲染引擎,V8 是 Blink 内置的 JavaScript 引擎

V8 对 DOM(文档对象模型)一无所知,因为它仅用于处理 JavaScript。Blink 内置的布局引擎负责处理网页布局和展示。因为 Node.js 不需要使用 DOM,所以 Node.js 只使用了 V8 引擎,而没有把整个 Blink 引擎都搬过来用。

到这里想必大家应该理解了,为啥nodejs为啥说用的v8引擎,而浏览器却从来不说使用的v8引擎了吧!

总结如下:

Google Chrome 浏览器 -->内核是Blink --> V8引擎是Blink中负责处理js的引擎(对于Blink引擎来说,内部处理DOM可能又会用到别的啥引擎,下次研究。内部处理DOM应该主要是Blink的主要工作,其内部使用的V8来处理js;层级来说v8在Blink下,功能来说是分工不同罢了)

Node.js 浏览器以外的一个运行js的平台 --> 底层用到了V8引擎

浏览器内核主要包括以下三个技术分支:排版渲染引擎、 JavaScript引擎,以及其他。

上面关于渲染引擎和js引擎的内容有些误人子弟,特附上大神的详细说明,之前是我搞错了https://blog.csdn.net/wangfeijiu/article/details/106607057

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值