i = 10 str = "hello world" [firstName, lastName] = ["kang", "wang"]
fn = (param) - ...
fn = (parm1, parm1, params...) -> ... params = ["value1", "value2", "value3", "value4"] fn(params) fn("value", params) fn("value", "value", params)
arr = [ "element1" "element2" ]
obj = first: 1 second: second_1: 1 second_2: 2 third: 3 $('.element').attr class: "active"
outter = 10 scope = -> inner = 10
outter = 20 inner = 20javascript
str = "variable 1: #{var1}, function 1 returns: #{fn()}" str = " today is Sunday so tomorrow is Monday " htmlTpl = """ <html> <body> <h1>Hello World</h1> </body> </html> """
[var1, var2] = [value1, value2]
{firstName, lastName} = {firstName: "Kang", lastName: "Wang"}
location () -> ["US", "LA", "Berkly"] [county, province, city] = location() [start, end] = "hello, world".split ","
[start, ..., end] = [1, 2, 3, 4, 5]
class Person constructor: (options) -> {@name, @age, @height} = options tim = new Person age: 4
"do something" if true if true and true "do something" else "do other things" if true then "do something" else "do other things"
print ele for ele in [1, 2, 3, 4] prints i, ele for ele in [1, 2, 3, 4] print ele for ele in [1, 2, 3, 4] when ele / 2 != 1 countDown = (num for num in [10 .. 1] by 2)
prints k, v for k, v of kid print ele until ele > 10 print ele while ele > 10
for filename in list do (filename) -> fs.readFile filename, (err, contents) -> compile filename, contents.toString() for ele in [1, 2, 3, 4] do print ele
try fn(1) catch error error finally then
numSerials = [10 .. 0] start = numSerials[0..2] end = numSerials[0..-2] end = numSerials[..] umSerials[0..2] = [1, 2, 3]
globals = (name for name of window)[0...10]
solipsism = true if mind? and world? speed = 0 speed ?= 15 footprints = yeti ? "bear"
kid.brother?.sister
switch day when "Mon" then "" when "Tue" then "" else "WTF" day = switch day when "Mon" then "" when "Tue" then "" else "WTF"
Account = (customer, cart) -> @customer = customer @cart = cart $('.shopping_cart').bind 'click', (event) => @customer.purchase @cart Account2 = (customer, cart) -> @customer = customer @cart = cart $('.shopping_cart').bind 'click', (event) -> @customer.purchase @cart
Array::map = -> "..."
cholesterol = 127 healthy = 200 > cholesterol > 60
OPERATOR = /// ^ ( ?: [-=]> # function | [-+*/%<>&|^!?=]= # compound assign / compare | >>>=? # zero-fill right shift | ([-+:])\1 # doubles | ([&|<>])\2=? # logic / shift | \?\. # soak access | \.{2,3} # range or splat ) ///
fn = `function fn() {}`
CoffeeScript JavaScript is === isnt !== not ! and && or || true, yes, on true false, no, off false @, this this of in in no JS equivalent a ** b Math.pow(a, b) a // b Math.floor(a / b) a %% b (a % b + b) % b
moduleKeywords = ['extended', 'included'] class Trait @mixin: (obj) => for key, value of obj when key not in moduleKeywords @::[key] = value obj.with?.apply(@) this @with: (objs ...) -> @mixin obj for obj in objs MongoDao = find: () -> console.log("find items in mongo") create: () -> console.log("delete item in mongo") class UserDao extends Trait @with Daoable, MongoDao