1. 程式人生 > 其它 >Node.js 是什麼?Node.js與JavaScript的區別是什麼?

Node.js 是什麼?Node.js與JavaScript的區別是什麼?

Node.js 是什麼?Node.js與JavaScript的區別是什麼?

node.js是什麼?

Node.js是一個Javascript執行環境(runtime)。

Node.js與JavaScript的區別是什麼?

本質:

Javascript是一種web前端語言,主要用於web開發中,由瀏覽器解析執行

Node.js是一個可以快速構建網路服務及應用的平臺,是用Javascript語言構建的服務平臺,可用於後端建立伺服器

區別:

Javascript 主要應用前端 是程式語言 客戶端程式語言(需要瀏覽器的javascript直譯器進行解釋執行)

node.js 主要應用後端 1個平臺 執行環境(一個基於Chrome JavaScript執行時建立的平臺,它是對Google V8引擎進行了封裝的執行環境)

簡單的說node.js就是把瀏覽器的直譯器封裝起來作為伺服器執行平臺,用類似javascript的結構語法進行程式設計,在node.js上執行。

Node.js的優點?Node.js的缺點?

優點:

1.事件驅動

2.非同步程式設計

3.非阻塞模式的IO

4.輕量高效

缺點:

1.可靠性低

2.單程序,單執行緒,只支援單核cpu,不能充分的利用多核cpu伺服器。一旦這個程序崩掉,那麼整個web服務就崩掉了。

Node.js適用場景?Node.js不適用的場景?

適用場景:

1.JSON APIL ——構建一個Rest/JSON API服務,node.js可以充分發揮其非堵塞IO模型以及javascript對JSON的功能支援

2.單頁面、多Ajax請求應用——前端有大量的非同步請求,需要伺服器後端有極高的響應速度

3.基於node.js開發Unix命令列工具——node.js可以大量產生子程序,並以流的方式輸出

4.流式資料——傳統的web應用,通常會將HTTP 請求喝響應看成是原子事件。而node.js會充分利用流式資料這個特點,構建非常酷的應用

不適用場景:

cpu使用率較重、io使用率較輕的應用

Node.js的基本語法

基本語法與 javascript 一樣

這裡我們使用exports匯出一個函式,然後再另一檔案中通過require匯入入一個模組

例如 :

在 a.js 中寫一個函式

var hello=function(){

console.log('hello')

}

export.hello=hello;

在 b.js 中 需要用hello這個函式

var a=require('a');

a.hello()

單執行緒

Node的設計中就是將耗時長的操作代理給作業系統或者多執行緒,這部分操作就是磁碟I/O和網路I/O。所以Node中非同步非常常見,因為要將耗時的操作從主執行緒上脫離。但是這些I/O執行緒並不怎麼耗費CPU。

無法利用多核CPU是指Node的主執行緒無法利用上硬體上額外的CPU。這就需要用到cluster來在機器上啟動多個Node例項,將額外的CPU也使用上。

非同步 IO

事件驅動

REPL

REPL(Read-Eval-Print Loop) 中文的話有翻譯成“互動式直譯器”或“互動式程式設計環境”的。