初探 CoffeeScript
fmms
13年前
上周末我去参加了Java开发者大会讨论了几个非常有意思的话题。有名演讲者谈到了Underscore,当时他使用的演示都是基于CoffeeScript完成的。我以前与CoffeeScript这玩意有过一面之缘,但经过他这次讲解后我打算重新再好好研究一下。如果你曾经在浏览器上使用过JavaScript 或者再服务端用过 Nodejs。那么你上手CoffeeScript就相当简单了。
请记住你根本不需要使用 CoffeeScript,如果你本身就喜欢JavaScript那么你当然可以继续使用JavaScript。而这篇文章的目的是向你们介绍CoffeeScript带来的几点好处。
CoffeeScript应用程序是以JavaScript应用的方式的运行的。在CoffeeScript程序被启动前,它被转换成对等的JavaScript应用。所以说白了,真正运行的程序实质上依然是JavaScript,只不过是利用了CoffeeScript的诸多好处而已。
几个有意思的地方:
1, 如果你对Python比较熟悉的话,那么一开始你绝对会喜欢CoffeeScript,因为CoffeeScript的语法也是使用分号结束符与大括号代码块形式的。
2, return 表达式不需要 "return" 关键字因为最后一句就代表返回的信息。虽然你也可以使用return关键字,但压根就没人这么做。
3, 当你创建一个新变量时,该变量被定义为局部变量,这就意味着我们不可能随意创建一个全局变量。所以一开始请小心地分配好全局变量。
CoffeeScript有一点我非常喜欢,就是用"or"关键字代替||符号,同理用"and"关键字代替&&
下面是一个CoffeeScript的简单范例:
value1 = true value2 = true if value1 and value2 alert true else alert false
这段代码如果翻译成JavaScript,就是:
value1 = true; value2 = true; if (value1 && value2) { alert(true); } else { alert(false); }
比如我想创建一个简单方法接受一个参数然后回一句"Hello":
sayHello = (name) -> alert "Hello #{name}" sayHello 'Chad'
对应的JavaScript代码就是:
var sayHello; sayHello = function(name) { return alert("Hello " + name); }; sayHello('Chad');
好了,下面让我们创建一个方法,接受两个参数,其中一个参数具有默认值:
sayHello = (name, greeting = "Hello") -> alert "#{greeting} #{name}!" sayHello 'Chad', 'Bonjour' sayHello 'Chad'
看到没,我调用此方法两次,第一次我提供了第二个方法参数,而第二次我没有写第二个参数(那么第二个参数实质就是方法定义的默认值)。所以第一次返回的结果是 Bonjour Chad,而第二次是 Hello Chad。
接着看看对应的 JavaScript 代码:
var sayHello; sayHello = function(name, greeting) { if (greeting == null) { greeting = "Hello"; } alert(greeting + " " + name + "!"); }; sayHello('Chad', 'Bonjour'); sayHello('Chad');
下面来看看 CoffeeScript 提供的自动 return 功能:
positiveOrNegative = (value) -> if value > 0 "Positive" else "Negative" alert positiveOrNegative 123 alert positiveOrNegative -123
对应的 JavaScript:
var positiveOrNegative; positiveOrNegative = function(value) { if (value > 0) { return "Positive"; } else { return "Negative"; } }; alert(positiveOrNegative(123)); alert(positiveOrNegative(-123));
展望未来...
你能从这里找到有关于 CoffeeScript 技术的一切。同时现在你也能从市面上买到这两本专门讲解 CoffeeScript 的书籍。