CoffeeScript tiene una sintaxis inspirada en Ruby y Python permitiendo que los scripts sean más sencillos de escribir y de leer.
CoffeeScript compila todo el código con extensión .coffee en JavaScript. La versión actual es la 0.9.1, y es una buena candidata a ser la versión definitiva.
Un ejemplo de código utilizando CoffeeScript
# Assignment: number = 42 opposite = true # Conditions: number = -42 if opposite # Functions: square = (x) -> x * x # Arrays: list = [1, 2, 3, 4, 5] # Objects: math = root: Math.sqrt square: square cube: (x) -> x * square x # Splats: race = (winner, runners...) -> print winner, runners # Existence: alert "I knew it!" if elvis? # Array comprehensions: cubes = math.cube num for num in list
Una vez compilado, la salida en javaScript será algo como lo siguiente.
var _i, _len, _ref, _result, cubes, list, math, num, number, opposite, race, square;
var __slice = Array.prototype.slice;
number = 42;
opposite = true;
if (opposite) {
number = -42;
}
square = function(x) {
return x * x;
};
list = [1, 2, 3, 4, 5];
math = {
root: Math.sqrt,
square: square,
cube: function(x) {
return x * square(x);
}
};
race = function(winner) {
var runners;
runners = __slice.call(arguments, 1);
return print(winner, runners);
};
if (typeof elvis !== "undefined" && elvis !== null) {
alert("I knew it!");
}
cubes = (function() {
_result = []; _ref = list;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
num = _ref[_i];
_result.push(math.cube(num));
}
return _result;
})();
Vía: Sitio oficial
