fbpx
维基百科

CoffeeScript

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

CoffeeScript
编程范型編程範型基于原型函数式指令式脚本
設計者Jeremy Ashkenas
實作者Jeremy Ashkenas等數人
发行时间2009年,​13年前​(2009
当前版本
  • 2.7.0 (2022年4月24日;穩定版本)[1][2]
操作系统跨平台
許可證MIT許可證
文件扩展名.coffee
網站coffeescript.org
啟發語言
Haskell[3]JavaScriptPerlPython[3]Ruby,[3]YAML[4]
影響語言
MoonScript[5], LiveScript英语LiveScript, JavaScript

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

歷史 编辑

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

語法 编辑

許多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的環境中使用。[14]此外,可以使用Coffee Maven Plugin[15]作為Node.js之外的替代方案,這是Apache Maven建置工具的外掛,由Rhino JavaScript引擎並以Java語言寫成。

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

引用資料 编辑

  1. ^ 1.0 1.1 https://github.com/jashkenas/coffeescript/releases/tag/2.7.0; 出版日期: 2022年4月24日; 检索日期: 2022年8月9日.
  2. ^ https://registry.npmjs.com/coffeescript; 检索日期: 2023年3月1日.
  3. ^ 3.0 3.1 3.2 3.3 The Changelog. Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas (页面存档备份,存于互联网档案馆), July 23, 2010
  4. ^ Heller, Martin. . JavaWorld (InfoWorld). 18 October 2011 [2012-02-09]. (原始内容存档于2012-02-10). 
  5. ^ MoonScript-A programmer friendly language that compiles to Lua. [2012-04-28]. (原始内容于2021-06-04). 
  6. ^ Read Write Hack. Interview with Jeremy Ashkenas (页面存档备份,存于互联网档案馆), Jan 7, 2011
  7. ^ Josh Peek. Tweet by Rails Core Team Member. April 13, 2011 [2020-09-18]. (原始内容于2013-11-07). 
  8. ^ AssetsCoffeeScript - 2.5.x. www.playframework.com. [2016-10-31]. (原始内容于2017-09-09). 
  9. ^ Eich, Brendan. "Harmony of My Dreams (页面存档备份,存于互联网档案馆)"
  10. ^ Eich, Brendan. "My JSConf.US Presentation (页面存档备份,存于互联网档案馆)"
  11. ^ Github. 'initial commit of the mystery language' (页面存档备份,存于互联网档案馆
  12. ^ Hacker News. CoffeeScript 1.0.0 announcement (页面存档备份,存于互联网档案馆) posted by Jeremy Ashkenas on Dec 24, 2010
  13. ^ Hacker News. Original CoffeeScript announcement (页面存档备份,存于互联网档案馆) posted by Jeremy Ashkenas on Dec 24, 2009
  14. ^ . [2012-04-28]. (原始内容存档于2009-12-27). 
  15. ^ Coffee Maven Plugin. [2012-04-28]. (原始内容于2016-01-31). 
  16. ^ js2coffee/js2coffee: Compile JavaScript to CoffeeScript. GitHub. js2coffee. 2022-11-08 [2022-11-18]. (原始内容于2022-11-18). 

外部連結 编辑

教學文件

coffeescript, 是一套javascript的轉譯語言, 受到ruby, python與haskell等語言的啟發, 增強了javascript的簡潔性與可讀性, 此外, 也新增了更複雜的功能, 例如列表推导式, 并行赋值等, 一般來說, 可以在不影響執行效能的情況下, 縮短約三分之一的程式碼長度, 编程范型編程範型, 基于原型, 函数式, 指令式, 脚本設計者jeremy, ashkenas實作者jeremy, ashkenas等數人发行时间2009年, 13年前, 2009, 当前版本2, 2022年. CoffeeScript是一套JavaScript的轉譯語言 受到Ruby Python與Haskell等語言的啟發 3 CoffeeScript增強了JavaScript的簡潔性與可讀性 此外 CoffeeScript也新增了更複雜的功能 例如列表推导式 并行赋值等 一般來說 CoffeeScript可以在不影響執行效能的情況下 縮短約三分之一的程式碼長度 6 CoffeeScript编程范型編程範型 基于原型 函数式 指令式 脚本設計者Jeremy Ashkenas實作者Jeremy Ashkenas等數人发行时间2009年 13年前 2009 当前版本2 7 0 2022年4月24日 穩定版本 1 2 操作系统跨平台許可證MIT許可證文件扩展名 coffee網站coffeescript wbr org啟發語言Haskell 3 JavaScript Perl Python 3 Ruby 3 YAML 4 影響語言MoonScript 5 LiveScript 英语 LiveScript JavaScriptCoffeeScript支持包含在了Ruby on Rails版本3 1 7 和Play Framework 8 之中 在2011年 Brendan Eich声称CoffeeScript影响了他对JavaScript未来的思考 9 10 目录 1 歷史 2 語法 3 範例 4 編譯 5 引用資料 6 外部連結歷史 编辑2009年12月3日 Jeremy Ashkenas 英语 Jeremy Ashkenas 在Git上對CoffeeScript做出了第一筆提交 這是這個神秘語言最初的提交 initial commit of the mystery language 11 當時的編譯器由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也是當時此專案第一次發表的網站 12 13 語法 编辑許多JavaScript的陳述句皆可在CoffeeScript中視為表達式 例如 if switch與for等 這些控制陳述句也有後綴的版本 CoffeeScript的一般原則 是可以省略許多不必要的括號和大括號 可以使用縮排來取代 可以以隱喻方式呼叫函數 在JavaScript中呼叫函數所需的括號可以被省略 物件文字通常可以自動偵測 範例 编辑一個使用jQuery的普通JavaScript程式碼如下 document ready function 這裡是初始化的程式碼 或可以更省略 function 這裡是初始化的程式碼 在CoffeeScript裡 function關鍵字可用 gt 符號來取代 結尾的分號也可用縮排來表示 如同Python Haskell等縮排語言的越位规则一樣 此外 大括號通常也可以省略 因此上述的程式碼在CoffeeScript中可寫成如下的形式 document ready gt 這裡是初始化的程式碼 或 document ready gt 這裡是初始化的程式碼 又或者 gt 這裡是初始化的程式碼編譯 编辑CoffeeScript的編譯器在0 5版本之後由CoffeeScript本身寫成 為Node js裡的一個工具程式 但核心程式碼並不依賴Node js 且可直接在任何支援JavaScript的環境中使用 14 此外 可以使用Coffee Maven Plugin 15 作為Node js之外的替代方案 這是Apache Maven建置工具的外掛 由Rhino JavaScript引擎並以Java語言寫成 在CoffeeScript org官方網站的選單上有 Try CoffeeScript 按鈕 可以讓使用者直接輸入CoffeeScript程式碼並直接在瀏覽器上編譯成JavaScript 另外一個網站 jscoffee 16 提供雙向轉譯的功能 引用資料 编辑 1 0 1 1 https github com jashkenas coffeescript releases tag 2 7 0 出版日期 2022年4月24日 检索日期 2022年8月9日 https registry npmjs com coffeescript 检索日期 2023年3月1日 3 0 3 1 3 2 3 3 The Changelog Episode 0 2 9 CoffeeScript with Jeremy Ashkenas 页面存档备份 存于互联网档案馆 July 23 2010 Heller Martin Turn up your nose at Dart and smell the CoffeeScript JavaWorld InfoWorld 18 October 2011 2012 02 09 原始内容存档于2012 02 10 MoonScript A programmer friendly language that compiles to Lua 2012 04 28 原始内容存档于2021 06 04 Read Write Hack Interview with Jeremy Ashkenas 页面存档备份 存于互联网档案馆 Jan 7 2011 Josh Peek Tweet by Rails Core Team Member April 13 2011 2020 09 18 原始内容存档于2013 11 07 AssetsCoffeeScript 2 5 x www playframework com 2016 10 31 原始内容存档于2017 09 09 Eich Brendan Harmony of My Dreams 页面存档备份 存于互联网档案馆 Eich Brendan My JSConf US Presentation 页面存档备份 存于互联网档案馆 Github initial commit of the mystery language 页面存档备份 存于互联网档案馆 Hacker News CoffeeScript 1 0 0 announcement 页面存档备份 存于互联网档案馆 posted by Jeremy Ashkenas on Dec 24 2010 Hacker News Original CoffeeScript announcement 页面存档备份 存于互联网档案馆 posted by Jeremy Ashkenas on Dec 24 2009 存档副本 2012 04 28 原始内容存档于2009 12 27 Coffee Maven Plugin 2012 04 28 原始内容存档于2016 01 31 js2coffee js2coffee Compile JavaScript to CoffeeScript GitHub js2coffee 2022 11 08 2022 11 18 原始内容存档于2022 11 18 外部連結 编辑官方网站 中国官网 页面存档备份 存于互联网档案馆 GitHub專案 页面存档备份 存于互联网档案馆 教學文件中文文档 页面存档备份 存于互联网档案馆 CoffeeScript Cookbook The Little Book on CoffeeScript 页面存档备份 存于互联网档案馆 簡體中文版 Smooth CoffeeScript 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title CoffeeScript amp oldid 78954115, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。