CoffeeScript是一套JavaScript的转译语言。受到Ruby、Python与Haskell等语言的启发,CoffeeScript增强了JavaScript的简洁性与可读性。此外,CoffeeScript也新增了更复杂的功能,例如列表内涵(英语:List comprehension)、模式匹配(英语:Pattern matching)等。一般来说,CoffeeScript可以在不影响运行性能的情况下,缩短约三分之一的代码长度。自从2011年6月以来,CoffeeScript已经是GitHub上最受瞩目的项目之一。
2009年12月3日,Jeremy Ashkenas(英语:Jeremy Ashkenas)在Git上对CoffeeScript做出了第一笔提交“这是这个神秘语言最初的提交。(initial commit of the mystery language.)”当时的编译器由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也是当时此项目第一次发表的网站。
许多JavaScript的陈述句皆可在CoffeeScript中视为表达式。例如,if
, switch
与for
等。这些控制陈述句也有后缀的版本。
CoffeeScript的一般原则,是可以省略许多不必要的括号和大括号,可以使用缩进来取代。可以以隐喻方式调用函数(在JavaScript中调用函数所需的括号可以被省略),对象文字通常可以自动侦测。
一个使用jQuery的普通JavaScript代码如下:
$(document).ready(function() { // 這裡是初始化的程式碼});