CoffeeScript提供了一种更好的构建字符串的解决方案。在双引号字符串(单引号无效)中使用#{}
包含一个动态的值。数组
str = 'Hello, CoffeeScript.' console.log "#{str + ':)'}" # 输出:Hello, CoffeeScript:)
CoffeeScript引入lambda表达式的形式来定义函数。函数
函数定义:code
# 定义有参函数并调用 sayHello = (name)-> return "Hello, #{name}!" sayHello "Programmer" # 输出Hello, Programmer! # 定义无参函数并调用 sayGoodBye = -> return "Bye now!" sayGoodBye() # 输出Bye now!
大多数状况下,CoffeeScript不支持形如function sayHello(name){...}
的命名函数,只支持绑定函数。coffeescript
JavaScript中的命名函数在文件中其余一切以前执行定义,可是绑定函数不遵循此规则,绑定函数只在函数声明(定义)的位置执行声明操做,也就是说,只有在此以后的代码能够调用此函数,在绑定函数以前没法调用此函数。ip
CoffeeScript中函数有一个重要特性:隐式返回。即函数中若是没有显式给定返回的值,那么函数将以运行时执行的最后一条语句结果做为返回值。字符串
其中,若是最有一条语句为if
语句,则在if
语句的每一个分支中都加入return
语句;若是是for循环,则返回每次循环执行结果组成的数组,it
若是肯定函数不会返回,那么能够再函数末尾添加一个没有返回值的return语句或者null。io
CoffeeScript中的switch使用switch,when和else做为语句关键字,break命令自动插入到控制结构中。其中,when语句能够接受多个值的匹配,使用逗号隔开,还能够使用then语句将语句块缩短至一行console
switch iSpy when 'sky' console.log 'blue' when 'grass', 'frog' console.log 'green' when 'lake' then 'dark' else console.log 'grey'