1. 程式人生 > >Electron學習一:Electron、Node.js、JavaScript、JQuery、Vue.js、Angular.js的不同

Electron學習一:Electron、Node.js、JavaScript、JQuery、Vue.js、Angular.js的不同

結論

這些技術,成就JavaScript大法,全面實現JavaScript語言在Web、桌面、移動、伺服器等領域應用。

  • JavaScript是一種指令碼程式語言,常用在瀏覽器前端頁面動態效果實現,而Node.js提供一整套伺服器端JavaScript執行時環境,使JavaScript語言可以實現類似PHP的伺服器端程式設計。
  • Electron是跨平臺的桌面應用開發框架,程式語言是JavaScript,需要Node.js\Chrominum\V8等開源元件支援,使JavaScript能夠像.net、java一樣可以開發桌面應用。
  • JQuery是純粹的JavaScript類庫,封裝常用的JavaScript功能程式碼,簡化原始JavaScript的前端程式設計,但類庫距離實現應用仍需要大量的程式碼;
  • Vue.js、Angular.js等是前端JavaScript開發框架,快速實現前端Web應用,提供更加簡潔的語法,實現HTML的動態效果,對HTML5、移動裝置支援較好,重點解決JavaScript通過DOM操作HTML實現動態效果的複雜性。

JavaScript語言

  • JavaScript是解釋性指令碼語言,具備動態性、弱型別、基於原型(面向物件)等特點;
  • JavaScript重要歷史,從歷史看語言功能和設計初衷:

    • 1995年,網景在在瀏覽器Netscape中首次實現,目的是實現網頁前端動態效果;隨後微軟等瀏覽器廠商均採用模仿實現;
    • 1996,網景提交標準組織ECMA,1997年釋出ECMA-262標準,統一語言語法和基本物件;現在最新為ECMASCript 2017;
    • 小插曲:1995.12,網景公司推出Server-side JavaScript,可以執行在Netscape Enterprise Server;
  • 因此,可以得出結論:

    • JavaScript本質上是一種指令碼語言和程式語言;執行環境或者直譯器是內建在瀏覽器中的,傳統應用領域侷限在前端配合網頁實現動態效果的;
    • 網景公司很早已經探索將JavaScript變成通用的指令碼語言,並且可以用在伺服器端,可惜後來在瀏覽器大戰中被打敗;
    • JavaScript專注於前端網頁動態互動領域,與瀏覽器緊密相關,指令碼直譯器內建在瀏覽器實現中;其它指令碼語言提供單獨的直譯器;
    • JavaScript作為程式語言,提供相應的執行環境(直譯器或者編譯器),完全可能在伺服器端執行,不侷限於客戶端。

Node.js執行環境

  • Node.js是一個基於Chrome V8引擎的JavaScript執行時環境(2009.,Chrome V8是谷歌瀏覽器內建的JavaScript指令碼引擎(2008.9釋出);
    • Node.js是執行環境,提供JavaScript編寫伺服器程式的獨立執行平臺,該平臺的程式語言是JavaScript;
    • Node.js於2009年建立,距離網景1995年釋出第一個JavaScript伺服器端執行環境,時隔13年;
    • Node.js平臺提供伺服器端程式設計所需要的各種程式設計庫或模組,實現類似PHP、JSP等伺服器頁面程式設計技術功能;

Electron桌面應用開發框架

  • Electron提供一整套工具用來開發跨平臺的桌面應用,可以開發Windows、Mac、Linux等平臺的桌面應用,類似.Net Framework、Java桌面應用開發;
  • Electron平臺開發語言是JavaScript,介面採用HTML+CSS實現,執行環境依賴Node.js,Chrominum,V8,Node.js和Chromium共享同一個V8指令碼引擎例項;
  • Node.js作為後端執行環境,可以實現網路、檔案IO、GUI等系統原生功能;Chrominm+V8作為前端執行環境,可以實現網頁和JavaScript指令碼的執行顯示;
  • Electron可以使用JavaScript呼叫原生作業系統API來構建桌面應用,在Node.js支援下,實現在網頁中直接與作業系統底層API互動。

JQuery是前端JavaScript類庫

  • JQuery等是JavaScript類庫,本質上只是運用JavaScript編寫封裝的指令碼檔案,和我們自己的寫JavaScript指令碼沒有區別,執行在前端,瀏覽器都支援,不依賴任何庫或者元件;
  • JQuery前端庫,解決JavaScript程式設計繁瑣等問題,直接將常用的JavaScript功能封裝,另外對多版本的瀏覽器相容性較好;
  • 使用JQuery,可以方便實現網頁的動態效果,但因為僅僅是庫,仍需要手工實現大量的JS指令碼自己的需求,實現層次仍然較低;
  • 2006年釋出。

Vue.js\Angular.js等前端開發框架

  • Vue.js\Angular.js同樣是JavaScript編寫的前端開發框架,提供類似應用模板,開發者只需要加入自己的業務邏輯,基礎的功能框架均已經實現;
  • 因為是前端開發框架,不依賴第三方,只需要瀏覽器均可以執行;
  • 框架擴充套件了HTML的功能,彌補HTML構建動態網頁的不足,例如Angular.js只利用指令擴充套件HTML,實現資料與顯示等繫結;
  • 使用Angularjs等開發框架,利用宣告式的語法(HTML標籤中混合JS功能,類似JSP、PHP伺服器指令碼的寫法)可以快速實現常用的資料與顯示繫結、驗證等Web應用功能;
  • 支援HTML5應用,對移動裝置支援效果較好;
  • Angular.js 2009年釋出。