CoffeeScript

来自Local Chinese Wikipedia
imported>SchlurcherBot2026年1月25日 (日) 03:05的版本 (Bot: http → https)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

Template:NoteTA 脚本错误:没有“Infobox”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。 CoffeeScript是一套JavaScript的转译语言。受到RubyPythonHaskell等语言的启发[1],CoffeeScript增强了JavaScript的简洁性与可读性。此外,CoffeeScript也新增了更复杂的功能,例如列表推导式并行赋值等。一般来说,CoffeeScript可以在不影响执行效能的情况下,缩短约三分之一的程式码长度[2]

CoffeeScript支持包含在了Ruby on Rails版本3.1[3]Play Framework[4]之中。在2011年,JavaScript主要创造者布兰登·艾克声称CoffeeScript影响了他对JavaScript未来的思考[5][6]

历史[编辑]

2009年12月3日,脚本错误:没有“ilh”这个模块。Git上对CoffeeScript做出了第一笔提交:“神秘语言最初的提交。(initial commit of the mystery language.)”[7]当时的编译器由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也是当时此专案第一次发表的网站。[8][9]

语法[编辑]

许多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的环境中使用。[10]此外,可以使用Coffee Maven Plugin[11]作为Node.js之外的替代方案,这是Apache Maven建置工具的外挂,由Rhino JavaScript引擎并以Java语言写成。

在CoffeeScript.org官方网站的选单上有“Try CoffeeScript”按钮,可以让使用者直接输入CoffeeScript程式码并直接在浏览器上编译成JavaScript。另外一个网站“jscoffee[12]”提供双向转译的功能。

引用资料[编辑]

外部链接[编辑]

  1. REDIRECT Template:Official_website
教学文件

脚本错误:没有“Navbox”这个模块。 Template:JavaScript Template:Node.js