1. 程式人生 > >Node.js從入門到實戰(四)Node.js / JavaScript / ECMAScript的關係

Node.js從入門到實戰(四)Node.js / JavaScript / ECMAScript的關係

一、Node.js

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。 Node.js 的包管理器 npm,是全球最大的開源庫生態系統。

V8引擎本身使用了一些最新的編譯技術。這使得用Javascript這類指令碼語言編寫出來的程式碼執行速度獲得了極大提升,又節省了開發成本。對效能的苛求是Node的一個關鍵因素。 Javascript是一個事件驅動語言,Node利用了這個優點,編寫出可擴充套件性高的伺服器。Node採用了一個稱為“事件迴圈(event loop)”的架構,使得編寫可擴充套件性高的伺服器變得既容易又安全。提高伺服器效能的技巧有多種多樣。Node選擇了一種既能提高效能,又能減低開發複雜度的架構。這是一個非常重要的特性。併發程式設計通常很複雜且佈滿地雷。Node繞過了這些,但仍提供很好的效能。

二、JavaScript

JavaScript一種直譯式指令碼語言,是一種動態型別、弱型別、基於原型的語言,內建支援型別。它的直譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的指令碼語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。
在1995年時,由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。因為Netscape與Sun合作,Netscape管理層希望它外觀看起來像Java,因此取名為JavaScript。但實際上它的語法風格與Self及Scheme較為接近。為了取得技術優勢,微軟推出了JScript

,CEnvi推出ScriptEase,與JavaScript同樣可在瀏覽器上執行。為了統一規格,因為JavaScript兼容於ECMA標準,因此也稱為ECMAScript

三、ECMAScript

1996 年 11 月,JavaScript 的創造者 Netscape 公司,決定將 JavaScript 提交給標準化組織 ECMA,希望這種語言能夠成為國際標準。次年,ECMA 釋出 262 號標準檔案(ECMA-262)的第一版,規定了瀏覽器指令碼語言的標準,並將這種語言稱為 ECMAScript,這個版本就是 1.0 版。
該標準從一開始就是針對 JavaScript 語言制定的,但是之所以不叫 JavaScript,有兩個原因。一是商標,Java 是 Sun 公司的商標,根據授權協議,只有 Netscape 公司可以合法地使用 JavaScript 這個名字,且 JavaScript 本身也已經被 Netscape 公司註冊為商標。二是想體現這門語言的制定者是 ECMA

,不是 Netscape,這樣有利於保證這門語言的開放性和中立性。
因此,ECMAScript 和 JavaScript 的關係是,前者是後者的規格,後者是前者的一種實現(另外的 ECMAScript 方言還有 Jscript 和 ActionScript)。日常場合,這兩個詞是可以互換的。