ECMAScript & javascript
ECMAScript是一種由Ecma國際(前身爲歐洲計算機制造商協會,英文名稱是European Computer Manufacturers Association)經過ECMA-262標準化的腳本程序設計語言。這種語言在萬維網上應用普遍,它每每被稱爲JavaScript或JScript,但實際上後二者是ECMA-262標準的實現和擴展。javascript
chrome V8
Google V8 引擎使用 C++ 代碼編寫,實現了 ECMAScript 規範的第五版,能夠運行在全部的主流操做系統中,
甚至能夠運行在移動終端 ( 基於 ARM 的處理器,如 HTC G7 等 )。V8 最先被開發用以嵌入到 Google 的開源瀏覽器 Chrome 中,可是 V8 是一個能夠獨立的模塊,徹底能夠嵌入您本身的應用,著名的 Node.js( 一個異步的服務器框架,能夠在服務端使用 JavaScript 寫出高效的網絡服務器 ) 就是基於 V8 引擎的。
和其餘 JavaScript 引擎同樣,V8 會編譯 / 執行 JavaScript 代碼,管理內存,負責垃圾回收,與宿主語言的交互等。V8 的垃圾回收器採用了衆多技術,使得其運行效率大大提升。經過暴露宿主對象 ( 變量,函數等 ) 到 JavaScript,JavaScript 能夠訪問宿主環境中的對象,並在腳本中完成對宿主對象的操做。java
node.js
Node.js是一個Javascript運行環境(runtime)。
實際上它是對Chrome V8引擎進行了封裝。V8引 擎執行Javascript的速度很是快,性能很是好。
Node.js對一些特殊用例進行了優化,提供了替代的API,使得V8在非瀏覽器環境下運行得更好。node
nvm
node.js version managerweb
npm
NPM是隨同NodeJS一塊兒安裝的包管理工具,能解決NodeJS代碼部署上的不少問題,常見的使用場景有如下幾種:
容許用戶從NPM服務器下載別人編寫的第三方包到本地使用。
容許用戶從NPM服務器下載並安裝別人編寫的命令行程序到本地使用。
容許用戶將本身編寫的包或命令行程序上傳到NPM服務器供別人使用。chrome
express
Express 基於 Node.js 平臺,快速、開放、極簡的 web 開發框架。express
koa
koa 是由 Express 原班人馬打造的,致力於成爲一個更小、更富有表現力、更健壯的 Web 框架。使用 koa 編寫 web 應用,經過組合不一樣的 generator,能夠免除重複繁瑣的回調函數嵌套,並極大地提高錯誤處理的效率。koa 不在內核方法中綁定任何中間件,它僅僅提供了一個輕量優雅的函數庫,使得編寫 Web 應用變得駕輕就熟。npm
babel
Babel是一個普遍使用的轉碼器,能夠將ES6代碼轉爲ES5代碼,從而在現有環境執行。瀏覽器
babel-cli
Babel提供babel-cli工具,用於命令行轉碼。服務器
REPL環境
在Node.js中,爲了使開發者方便測試JavaScript代碼,提供了一個名爲REPL(Read-Eval-Print-Loop)的可交互運行環境。開發者能夠在該運行環境中輸入任何JavaScript表達式,當用戶按下回車鍵後,REPL運行環境中將顯示該表達式的運行結果。本章將詳細介紹該運行環境的基礎知識。babel
babel-node
babel-cli工具自帶一個babel-node命令,提供一個支持ES6的REPL環境。它支持Node的REPL環境的全部功能,並且能夠直接運行ES6代碼。它不用單獨安裝,而是隨babel-cli一塊兒安裝。而後,執行babel-node就進入PEPL環境。