新聞中心
本文將為大家介紹,V8引擎如何執(zhí)行JavaScript代碼。

看完本文可以掌握,以下幾個方面:
- JavaScript的執(zhí)行原理;
- 瀏覽器內核的真實結構;
- 瀏覽器渲染引擎的工作過程;
- V8引擎的工作原理;
- 瀏覽器和Node.js架構的區(qū)別和練習;
- Node.js架構的應用場景和REPL;
- Node.js架構的REPL使用;
PS:本篇文章為「Node.js系列」的第一篇,為邂逅Node.js。
之后會保持每周1~2篇的Node.js文章,歡迎大家和我一起學習大前端進階系列。
題目中說到的V8引擎,大家自然會聯想到Node.js。
我們先看一下官方對Node.js的定義:
Node.js是一個基于V8 JavaScript引擎的JavaScript運行時環(huán)境
但是這句話對于我們很多同學來說,非常籠統,比如先拋出這樣幾個問題:
- 什么是JavaScript運行環(huán)境?
- 為什么JavaScript需要特別的運行環(huán)境呢?
- JavaScript引擎又是什么呢?
- V8是什么?
上面這些問題,同學們理解的籠統沒關系,這篇文章會依次揭曉答案~
我們先來吧這些概念搞清楚,再去看Node到底是什么?為什么大前端需要它。
JavaScript無處不在
Stack Overflow的創(chuàng)立者之一的 Jeff Atwood 在前些年提出了著名的Atwood定律:
- 任何可以使用JavaScript來實現的應用最終都會使用JavaScript實現。
在發(fā)明之處,JavaScript的目的是應用于在瀏覽器執(zhí)行簡單的腳本任務,對瀏覽器以及其中的DOM進行各種操作,所以JavaScript的應用場景非常受限。
但是隨著Node的出現,Atwood定律已經越來越多的被證實是正確的。
但是為了可以理解Node.js是如何幫助我們做到這一點的,我們必須了解JavaScript是如何被運行的。
現在我們想一下,JavaScript代碼在瀏覽器中是如何被執(zhí)行的呢?
瀏覽器內核
不同的瀏覽器有不同的內核組成:
- Gecko:早期被Netscape和Mozilla Firefox瀏覽器使用;
- Trident:微軟開發(fā),被IE4~IE11瀏覽器使用,但是Edge瀏覽器已經轉向Blink;
- Webkit:蘋果基于KHTML開發(fā)、開源的,用于Safari,Google Chrome之前也在使用;
- Blink:是Webkit的一個分支,Google開發(fā),目前應用于Google Chrome、Edge、Opera等;
- 等等...
事實上,我們經常說的瀏覽器內核指的是瀏覽器的排版引擎:
排版引擎(layout engine),也稱為瀏覽器引擎(browser engine)、頁面渲染引擎(rendering engine)或樣板引擎。
介紹完瀏覽器的排版引擎之后,來介紹下瀏覽器的渲染引擎的工作過程。
渲染引擎工作的過程
瀏覽器渲染引擎的工作過程
如上圖:
- HTML和CSS經過對應的Parser解析之后,會形成對應的DOM Tree和 CSS Tree;
- 它們經過附加合成之后,會形成一個Render Tree,同時生成一個Layout布局,最終通過瀏覽器的渲染引擎幫助我們完成繪制,展現出平時看到的Hmtl頁面;
- 在HTML解析過程中,如果遇到了


咨詢
建站咨詢