CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript
其实有着一颗华丽的心脏. CoffeeScript 尝试用简洁的方式展示 JavaScript 优秀的部分.CoffeeScript 的指导原则是: “她仅仅是 JavaScript”. 代码一一对应地编译到 JS, 不会在编译过程中进行解释.
已有的 JavaScript 类库可以无缝地和 CoffeeScript 搭配使用, 反之亦然. 编译后的代码是可读的, 且经过美化,
能在所有 JavaScript 环境中运行, 并且应该和对应手写的 JavaScript 一样快或者更快.
优点:
- 抛弃诞生时的C/Java语法,改用类似Ruby/Python的语法—-更适合函数式+动态语言内核。
- 语法糖&ECMAScript
总结就是,屏蔽掉不优雅的地方。
安装:
sudo npm install -g coffee-script
语言手册:
一些基础:CoffeeScript使用显式的空白来区分代码块,换行就可以了。不需要花括号来包裹代码块。在函数,if表达式,switch,和try/catch当中使用缩进。传入参数不需要圆括号表明函数被执行。
函数
square = (x) -> x * x
cube = (x) -> square(x) * x
带有默认值参数的函数
fill = (container, liquid = "coffee") ->
"Filling the #{container} with #{liquid}..."
编译后
var fill;
fill = function(container, liquid) {
if (liquid == null) {
liquid = "coffee";
}
return "Filling the " + container + " with " + liquid + "...";
};
对象和数组
song = ["do", "re", "mi", "fa", "so"]
singers = {Jagger: "Rock", Elvis: "Roll"}
bitlist = [
1, 0, 1
0, 0, 1
1, 1, 0
]
kids =
brother:
name: "Max"
age: 11
sister:
name: "Ida"
age: 9
if, else, unless 和条件赋值
mood = greatlyImproved if singing
if happy and knowsIt
clapsHands()
chaChaCha()
else
showIt()
date = if friday then sue else jill
注意if and unless 意义的变化。
待完成。