初步瞭解CoffeeScript以及它為開發人員帶來的優勢

來源:互聯網
上載者:User
關鍵字 優勢 開發人員 CoffeeScript

CoffeeScript 可編譯成高效 JavaScript,除了可在 Web 瀏覽器中運行 JavaScript,您還可以將它與諸如 Node.js 一類的技術相結合用於構建伺服器應用程式。 本系列文章由 4 部分組成,第 1 部分將初步瞭解 CoffeeScript 以及它為開發人員帶來的特有優勢。 您可以構建 CoffeeScript 編譯器,然後使用它來創建準備在瀏覽器或者服務中運行的代碼。

CoffeeScript 程式設計語言是構建于 JavaScript 之上,它可編譯成高效 JavaScript,您可以在 Web 瀏覽器上運行它或者將其與諸如 Node.js 一類的技術相結合用於構建伺服器端應用程式。 編譯過程通常都很簡單,生成的 JavaScript 均與許多最佳實踐保持一致。 在本文中,我們將瞭解有關于 CoffeeScript 程式設計語言的特性。 在安裝並運行 CoffeeScript 編譯器後,將向您展示一個在 Web 頁面中使用 CoffeeScript 的簡單示例。

CoffeeScript 的吸引力

現在人們動輒就會說,JavaScript 是最重要的程式設計語言。 這是一門瀏覽器語言,正越來越頻繁地出現在桌面和移動應用程式中。 隨著 Node.js 的日益普及,JavaScript 已經成為了伺服器和系統應用程式一種切實可行的選擇。 一些開發人員強烈抵制 JavaScript,大部分原因是因為其不一致的語法和古怪的實現。 不過,隨著 JavaScript 虛擬機器變得越來越標準化,古怪的實現已經逐漸減少。 不一致的語法則可能會隨著 JavaScript 的下一次革命:ECMAScript.next 的到來而得到一定的解決。 ECMAScript.next 是一個新興標準,深受 CoffeeScript 的影響。 不過,在新標準被接受並且被流行虛擬機器實現之前,JavaScript 語法還需要進一步改進。

如果您正在等待 JavaScript 運行時,CoffeeScript 會是一個有吸引力的選擇。 從語法的角度來看,JavaScript 是不擇不扣的大雜燴,它具有許多函數式程式設計語言的功能,特別是深受 Scheme 的影響。 然而,Scheme 是構建于 S-運算式之上的一種非常簡單的語法。 JavaScript 沿襲了 Scheme 中的許多概念,但是卻沒有採用它的語法。 相反,JavaScript 擁有類似 C 的語法。 結果是,一種有著函數式概念的語言,但卻有著冗長的語法,而沒有用於表達這些概念的自然構造,例如,JavaScript 允許高階函數,比如,那些其輸入參數包含其他函數的函數。 這既有用且功能強大,是許多語言都缺少的功能。 不過,JavaScript 的語法並不那麼優雅,如清單 1 所示。

清單 1. 醜陋的 JavaScript

pmb.requestPaymentInfo('type', function(info){ $('result').innerHTML = info.name;});

示例中含有許多樣板代碼,如括弧、逗號、大括弧、分號,以及一些並不是真正需要的語言關鍵字。

JavaScript 的主要用途是作為一種用戶端 Web 應用程式語言。 諸如 Cocoa、Windows®、Forms 和 Android 這類桌面和移動應用程式框架均是物件導向的。 物件導向范型並非完美的,但非常適用于使用圖形化使用者介面的應用程式。 JavaScript 也是一種擁有繼承性的物件導向語言,但它是原型繼承,並非像被大多數應用程式框架所採用的基於類的語言。 因此,使用 JavaScript 進行應用程式程式設計可能非常繁瑣。

CoffeeScript 解決了 JavaScript 這些痛點。 CoffeeScript:

提供一種比較簡單的語法,減少了樣板代碼,諸如括弧和逗號 使用空格作為一種組織代碼塊的方法 提供擁有表達函數的簡單語法 提供基於類的繼承(可選項,但是在進行應用程式開發時非常有用)

您可能會想,相較于 JavaScript,CoffeeScript 肯定有一些劣勢,因為它的語法比較抽象。 例如,CoffeeScript 會不會比 JavaScript 更慢? 會不會需要一個較大的運行時庫? 實際上,CoffeeScript 將編譯成簡潔、高效的 JavaScript,您總能清楚地看到正在編譯的內容,因此,您可以很自信沒有引入過多的東西。 此外,因為 CoffeeScript 將完全編譯成函數式 JavaScript,所以不需要任何類型的運行時庫。 CoffeeScript 所提供的語法允許您充分利用 JavaScript 的強大功能,而只需要較小的運行時開銷。

先決條件

如上所述,您可以使用 CoffeeScript 來編寫運行在 Node.js 上的伺服器和系統應用程式,不過 CoffeeScript 和 Node.js 之間就要建立起更深一層的關係。 若要安裝 CoffeeScript,需要先安裝 Node.js,因為:

CoffeeScript 使用節點的包管理程式 NPM,作為 Node.js 的一個包進行分佈。 CoffeScript 必須被編譯,其編譯器實際上就是使用 CoffeeScript 編寫的,所以,需要一個 JavaScript 運行時來完成其編譯。 作為 Node.js 核心的 V8 JavaScript 虛擬機器很適合這一任務。

若要按照本文中的示例進行實踐,需要先安裝 Node.js。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.