nodejs是使用C++語言寫的。nodejs是用C++開發(fā)的一種運(yùn)行于服務(wù)器端的語言,node的底層是C++;且nodejs是一個(gè)基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境,而V8是使用C++開發(fā)的。
本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版、Dell G3電腦。
Node.js是用C ++編寫、開發(fā)的。
Node.js底層是C++(V8也是C++寫的)。node的源碼在 GitHub網(wǎng)站上 , 項(xiàng)目根目錄的src文件夾下很多以 .cc 后綴結(jié)尾的文件里有class字眼 ( C++有class而C沒有 )。
nodejs是用C++開發(fā)的一種運(yùn)行于服務(wù)器端的語言,可以寫網(wǎng)站后臺(tái)程序,可以做服務(wù)端應(yīng)用開發(fā),他的語法就是JAVASCRIPT,會(huì)JS,就是會(huì)NODEJS,區(qū)別于,普通JS是腳本運(yùn)行客戶端,而NODEJS中的JS是運(yùn)行于服務(wù)器端,這么說吧,NODEJS的作用相當(dāng)PHP,ASP等語言。
且Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。 Node.js 使用了一個(gè)事件驅(qū)動(dòng)、非阻塞式 I/O 的模型。
而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)等方法來提高性能。有了這些功能,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上,基于BSD協(xié)議,任何組織或個(gè)人可以將其源碼用于自己的項(xiàng)目中。
Node.js適合用來開發(fā)什么樣的應(yīng)用程序呢?
善于I/O,不善于計(jì)算。因?yàn)镹ode.js最擅長的就是任務(wù)調(diào)度,如果你的業(yè)務(wù)有很多的CPU計(jì)算,實(shí)際上也相當(dāng)于這個(gè)計(jì)算阻塞了這個(gè)單線程,就不適合Node開發(fā)。
當(dāng)應(yīng)用程序需要處理大量并發(fā)的I/O,而在向客戶端發(fā)出響應(yīng)之前,應(yīng)用程序內(nèi)部并不需要進(jìn)行非常復(fù)雜的處理的時(shí)候,Node.js非常適合。Node.js也非常適合與web socket配合,開發(fā)長連接的實(shí)時(shí)交互應(yīng)用程序。
Node.js不是一種獨(dú)立的語言,與PHP、JSP、Python、Perl、Ruby的“既是語言,也是平臺(tái)”不同,Node.js的使用JavaScript進(jìn)行編程,運(yùn)行在JavaScript引擎上(V8)。
【推薦學(xué)習(xí):《nodejs 教程》】