今天分享一下 JavaScript Engine. Javascript 在Nodejs問(wèn)世以前,一直是用在游覽器上面的。 但是可能沒(méi)有人,可以想象到Nodejs可以運(yùn)用到服務(wù)后臺(tái)的程序處理。 這個(gè)問(wèn)題得到了解決,一直到V8 Javascript 引擎 的出現(xiàn)。
該JavaScript引擎已用于其它項(xiàng)目的開發(fā)。第一個(gè)版本隨著第一個(gè)版本的Chrome于2008年9月2日發(fā)布。
V8使用C++開發(fā),并在谷歌瀏覽器中使用。在運(yùn)行JavaScript之前,相比其它的JavaScript的引擎轉(zhuǎn)換成字節(jié)碼或解釋執(zhí)行,V8將其編譯成原生機(jī)器碼(IA-32, x86-64, ARM, or MIPS CPUs),并且使用了如內(nèi)聯(lián)緩存(inline caching)等方法來(lái)提高性能。有了這些功能,JavaScript程序在V8引擎下的運(yùn)行速度媲美二進(jìn)制程序。
V8中實(shí)現(xiàn)的ECMAScript中指定 ECMA - 262 ,第3版 運(yùn)行在Windows XP和Vista,Mac OS X的10.5(雪豹和Linux系統(tǒng)使用IA - 32或ARM處理器。
V8可以獨(dú)立運(yùn)行,也可以 嵌入 到任何C++應(yīng)用程序。項(xiàng)目托管在Google Code上 [1] ,基于BSD協(xié)議,任何組織或個(gè)人可以將其源碼用于自己的項(xiàng)目中。
簡(jiǎn)單來(lái)講, 電腦并不明白JavaScript, V8 引擎把javascript轉(zhuǎn)換成電腦可以明白的 machine code. 這樣電腦就可以執(zhí)行javacript的指令。
Javascript -> C++ > Assembly Language -> Machine code

Nodejs 和V8 引擎 是C++寫的。這使得NodeJS可以使用V8引擎。
當(dāng)我們編寫JavaScript并通過(guò)NodeJS運(yùn)行它的時(shí)候,它被傳遞到V8并轉(zhuǎn)化成計(jì)算機(jī)可以理解。 現(xiàn)在了解V8只是NodeJS的一部分,NodeJS的其他部分也用C++編寫,所以她們是做什么的呢?NodeJS中其余的C++功能都可以連接到JavaScriptV8引擎, 這樣添加了附加的功能。 最初設(shè)計(jì)為運(yùn)行JavaScript是在游覽器中,它不是要處理比較低級(jí)別的操作, 而是C++來(lái)運(yùn)行那些附加的功能。所以它比JavaScript要強(qiáng)大。

NodeJS是用C++編寫到V8引擎中, 并將其擴(kuò)展到很多附加功能給JavaScript,比如讀取文件和鏈接到數(shù)據(jù)庫(kù)。 所以這些特征讓NodeJS令人興奮的事實(shí)。 現(xiàn)在的NodeJS比以前的JavaScript用了更大的能力和功能。 因此它使我們能夠建造服務(wù)器端的代碼, 這真的是很酷炫。 我想你現(xiàn)在對(duì)NodeJS和V8有了大致的了解以及如何使。
希望你可以了解并獲得更大的動(dòng)力來(lái)使用NodeJS在你的工作中。
接下來(lái),我會(huì)繼續(xù)和你來(lái)一個(gè)NodeJS的旅程。希望可以是我們成為一個(gè)真正的NodeJS的精英。
我們會(huì)學(xué)習(xí)到一下
- Modules
- Event Emitter
- The File System
- Routing
- Express
- Templating
最后我們一起來(lái)做一個(gè)ToDo App。