CoffeeScript

维基百科,自由的百科全书
跳转至: 导航搜索
CoffeeScript
编程范型 編程範型原型程式設計函數程式語言指令式編程腳本語言
发行时间 2009
設計者 Jeremy Ashkenas
實作者 Jeremy Ashkenas等數人
最新发行时间 1.7.1 / 2014年1月29日;5個月前 (2014-01-29)
啟發語言 Haskell,[1] JavaScript, Perl, Python,[1] Ruby,[1] YAML[2]
影響語言 MoonScript
作業系統 跨平台
許可證 MIT License
常用文件扩展名 .coffee
網站 coffeescript.org

CoffeeScript是一套JavaScript的轉譯語言。受到RubyPythonHaskell等語言的啟發[1],CoffeeScript增強了JavaScript的簡潔性與可讀性。此外,CoffeeScript也新增了更複雜的功能,例如列表内涵List comprehension)、模式匹配Pattern matching)等。一般來說,CoffeeScript可以在不影響執行效能的情況下,縮短約三分之一的程式碼長度[3]。自從2011年6月以來,CoffeeScript已經是GitHub上最受矚目的專案之一。[4]

歷史[编辑]

2009年12月3日,Jeremy AshkenasGit上對CoffeeScript做出了第一筆提交「這是這個神秘語言最初的提交。(initial commit of the mystery language.)」[5]當時的編譯器由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也是當時此專案第一次發表的網站。[6][7]

語法[编辑]

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

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

範例[编辑]

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

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

或可以更省略:

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

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

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

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

又或者

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

編譯[编辑]

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

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

引用資料[编辑]

  1. ^ 1.0 1.1 1.2 1.3 The Changelog. Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas, July 23, 2010
  2. ^ Heller, Martin. Turn up your nose at Dart and smell the CoffeeScript. JavaWorld (InfoWorld). 18 October 2011 [2012-02-09]. 
  3. ^ Read Write Hack. Interview with Jeremy Ashkenas, Jan 7, 2011
  4. ^ Github. Popular Watched Repositories
  5. ^ Github. 'initial commit of the mystery language'
  6. ^ Hacker News. CoffeeScript 1.0.0 announcement posted by Jeremy Ashkenas on Dec 24, 2010
  7. ^ Hacker News. Original CoffeeScript announcement posted by Jeremy Ashkenas on Dec 24, 2009
  8. ^ http://jashkenas.github.com/coffee-script/#installation
  9. ^ jscoffee. 

外部連結[编辑]

教學文件