CoffeeScript

CoffeeScript是一套JavaScript的轉譯語言。受到RubyPythonHaskell等語言的啟發[2],CoffeeScript增強了JavaScript的簡潔性與可讀性。此外,CoffeeScript也新增了更複雜的功能,例如列表推导式并行赋值等。一般來說,CoffeeScript可以在不影響執行效能的情況下,縮短約三分之一的程式碼長度[4]

CoffeeScript
編程範型基于原型编程函數程式語言指令式編程腳本語言
設計者Jeremy Ashkenas
實作者Jeremy Ashkenas等數人
2009
穩定版本
2.5.1
( 2020年1月31日2020-01-31[1]
作業系統跨平台
許可證MIT許可證
文件扩展名.coffee
網站coffeescript.org
啟發語言
Haskell[2]JavaScriptPerlPython[2]Ruby,[2]YAML[3]
影響語言
MoonScript, LiveScript, JavaScript

CoffeeScript支持包含在了Ruby on Rails版本3.1[5]Play Framework[6]之中。在2011年,Brendan Eich声称CoffeeScript影响了他对JavaScript未来的思考[7][8]

歷史

2009年12月3日,Jeremy AshkenasGit上對CoffeeScript做出了第一筆提交「這是這個神秘語言最初的提交。(initial commit of the mystery language.)」[9]當時的編譯器由Ruby語言所寫成。在同年12月24日,Ashkenas做出了第一個上標籤與歸檔的版本-0.1.0。2010年2月21日,他釋出了0.5版,此版本將原先由Ruby撰寫的編譯器改寫為純CoffeeScript撰寫。當時吸引了GitHub上的許多貢獻者,每日約有300人次造訪該專案的頁面。2010年12月24日,Askenas釋出了1.0.0穩定版本,並在Hacker News上發表。Hacker News也是當時此專案第一次發表的網站。[10][11]

語法

許多JavaScript的陳述句皆可在CoffeeScript中視為表達式。例如,if, switchfor等。這些控制陳述句也有後綴的版本。

CoffeeScript的一般原則,是可以省略許多不必要的括號和大括號,可以使用縮排來取代。可以以隱喻方式呼叫函數(在JavaScript中呼叫函數所需的括號可以被省略),物件文字通常可以自動偵測。

範例

一個使用jQuery的普通JavaScript程式碼如下:

$(document).ready(function() {
  // 這裡是初始化的程式碼
});

或可以更省略:

$(function() {
  // 這裡是初始化的程式碼
});

在CoffeeScript裡,function關鍵字可用->符號來取代,結尾的分號也可用縮排來表示,如同PythonHaskell縮排語言越位规则一樣。此外,大括號通常也可以省略。因此上述的程式碼在CoffeeScript中可寫成如下的形式。

$(document).ready ->
  # 這裡是初始化的程式碼

($ document).ready ->
  # 這裡是初始化的程式碼

又或者

$ ->
  # 這裡是初始化的程式碼

編譯

CoffeeScript的編譯器在0.5版本之後由CoffeeScript本身寫成,為Node.js裡的一個工具程式。但核心程式碼並不依賴Node.js,且可直接在任何支援JavaScript的環境中使用。[12]此外,可以使用Coffee Maven Plugin[13]作為Node.js之外的替代方案,這是Apache Maven建置工具的外掛,由Rhino JavaScript引擎並以Java語言寫成。

在CoffeeScript.org官方網站的選單上有「Try CoffeeScript」按鈕,可以讓使用者直接輸入CoffeeScript程式碼並直接在瀏覽器上編譯成JavaScript。另外一個網站「jscoffee[14]」提供雙向轉譯的功能。

引用資料

  1. . October 27, 2019 [2020-09-13]. (原始内容存档于2019-04-15) GitHub.
  2. The Changelog. Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas 页面存档备份,存于, July 23, 2010
  3. Heller, Martin. . JavaWorld (InfoWorld). 18 October 2011 [2012-02-09]. (原始内容存档于2012-02-10).
  4. Read Write Hack. Interview with Jeremy Ashkenas 页面存档备份,存于, Jan 7, 2011
  5. Josh Peek. . April 13, 2011 [2020-09-18]. (原始内容存档于2013-11-07).
  6. . www.playframework.com. [2016-10-31]. (原始内容存档于2017-09-09).
  7. Eich, Brendan. "Harmony of My Dreams 页面存档备份,存于"
  8. Eich, Brendan. "My JSConf.US Presentation 页面存档备份,存于"
  9. Github. 'initial commit of the mystery language' 页面存档备份,存于
  10. Hacker News. CoffeeScript 1.0.0 announcement 页面存档备份,存于 posted by Jeremy Ashkenas on Dec 24, 2010
  11. Hacker News. Original CoffeeScript announcement 页面存档备份,存于 posted by Jeremy Ashkenas on Dec 24, 2009
  12. . [2012-04-28]. (原始内容存档于2009-12-27).
  13. . [2012-04-28]. (原始内容存档于2016-01-31).
  14. . [2020-09-25]. (原始内容存档于2020-08-18).

外部連結

教學文件

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.