Movatterモバイル変換


[0]ホーム

URL:


跳转到内容
维基百科自由的百科全书
搜索

CoffeeScript

本页使用了标题或全文手工转换
维基百科,自由的百科全书
CoffeeScript
编程范型編程範型基于原型函数式指令式脚本
設計者Jeremy Ashkenas
實作者Jeremy Ashkenas等數人
发行时间2009年,​17年前​(2009
当前版本
  • 2.7.0(2022年4月24日;穩定版本)[1][2]
編輯維基數據鏈接
操作系统跨平台
許可證MIT許可證
文件扩展名.coffee
網站coffeescript.org
受影响于
Haskell[3]JavaScriptPerlPython[3]Ruby,[3]YAML[4]
影響語言
MoonScript[5],LiveScript, JavaScript

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

CoffeeScript支持包含在了Ruby on Rails版本3.1[7]Play Framework[8]之中。在2011年,JavaScript主要創造者布蘭登·艾克声称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.01.12.7.0. 2022年4月24日 [2022年8月9日]. 
  2. ^https://registry.npmjs.com/coffeescript; 检索日期: 2023年3月1日.
  3. ^3.03.13.23.3The Changelog.Episode 0.2.9 - CoffeeScript with Jeremy Ashkenas页面存档备份,存于互联网档案馆), July 23, 2010
  4. ^Heller, Martin.Turn up your nose at Dart and smell the CoffeeScript. 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). 

外部連結

[编辑]
教學文件
范型分类
过程式
面向对象
多范型
函数式
逻辑式
脚本语言
动态语言
外壳脚本
客户端脚本
特定平台
.NET
JVM
特定领域
科学计算
GPU计算
数据查询
可视化
传媒设计
其它语言
代码分析
編譯器
概念
调试工具
文档生成器英语Documentation generator
編輯器(比较英语Comparison of JavaScript-based source code editors
引擎
軟體框架
相關語言
相關技術
軟體套件管理系統
伺服器端
單元測試
人物
软件
框架
编程语言
云平台
检索自“https://zh.wikipedia.org/w/index.php?title=CoffeeScript&oldid=91245389
分类:​
隐藏分类:​

[8]ページ先頭

©2009-2026 Movatter.jp