CoffeeScript
CoffeeScriptはJavaScriptにコンパイルされてるプログラミング言語。出力はただのJavaScriptコードですが、構文は軽くて書きやすい言語です。つまり、CoffeeScriptは新しいプログラミング言語の用なシンタクスでJavaScriptを書く事が出来ます。
coffeescript.org
CoffeeScriptのプログラミングなら、http://coffeescript.org/ はとても便利です。良いドキュメンテーションがありますし、「Try CoffeeScript」というメニューで、CoffeeScriptをタイプすれば、リアルタイムでJavaScriptのアウトプットが見えますから、ずいぶん分かりやすいです。
変数
変数はラムダ式のままで書きます。
square.coffee
square = (x) -> x * x
パラメータがありませんと何も書かなくても良いです。
greet.coffee
greet = -> alert "Hello!"
先の例の用に、括弧は一般的に書かなくても良いですが、括弧が必要場合もまります。例えば、
ambiguous.coffee
functionA functionB parameterX, parameterY
はディフォルトで
output1.js
functionA(functionB(parameterX, parameterY));
になりますが、元々意味は
output2.js
functionA(functionB(parameterX), parameterY);
だったと思えます。
ディフォルトパラメータも出来ます。
input.coffee
greet = (message = "Hello!") -> alert(message)
output.js
var greet;
greet = function(message) {
if (message == null) {
message = "Hello!";
}
return alert(message);
};
関数の最後のラインは自動的にリターンされてます。
波括弧
波括弧の代わりにインデントを使うことが出来ます。
input.coffee
if flag
newObject =
name: "Sanomaru"
age: 4
prefecture: "Tochigi"
specialties: [
"fencing"
"ramen"
]
output.js
var newObject;
if (flag) {
newObject = {
name: "Sanomaru",
age: 4,
prefecture: "Tochigi",
specialties: ["fencing", "ramen"]
};
}
そのままでアレイも書けます。
Comprehensions
comprehensions.coffee
displayContentWithIndex = (index, content) -> alert "#{index} - #{content}"
colors = ["Red", "Green", "Orange", "Blue"]
displayContentWithIndex index, content for content, index in colors when content != "Orange"