CoffeeScript: шпаргалка

категория: CoffeeScript
С самого начала стоит наверное забыть про большинство операторов: круглые, фигурные скобки, точку с запятой, о таких словах как var, function, return Дальше все как при изучении любого языка программирования, просто нужно запомнить синтаксис и практиковать, практиковать, практиковать и еще чуток - вот теперь все)) Списки:
a = [1..10]
b = [10..1]
start   = a[0..2]
middle  = a[3...-2]
end     = a[-2..]
copy    = a[..]
Словари:
people =
  boy:
    name: "Max"
    age:  30
  girl:
    name: "Ida"
    age:  9
Функции:
say_something = (msg = 'Python') ->
  console.log "say #{msg}"
Условия:
date = if friday then sue else jill
Циклы:
i for i in [1..10]
foods = ['broccoli', 'spinach', 'chocolate']
eat food for food in foods when food isnt 'chocolate'
Интерполяция строк:
greeting = 'hi, #{name}, #{msg}'
greeting 'acman', 'how are you'
Операторы:
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
Классы:
class Animal
  constructor: (@name) ->
  move: (meters) ->
    alert @name + " moved #{meters}m."
class Snake extends Animal
  move: ->
    alert "Slithering..."
    super 5
class Horse extends Animal
  move: ->
    alert "Galloping..."
    super 45
sam = new Snake "Sammy the Python"
tom = new Horse "Tommy the Palomino"
sam.move()
tom.move()
Деструктуризация:
tag = ""
[open, contents..., close] = tag.split("")
Выбор:
switch day
  when "Mon" then go work
  when "Tue" then go relax
  when "Thu" then go iceFishing
  when "Fri", "Sat"
    if day is bingoDay
      go bingo
      go dancing
  when "Sun" then go church
  else go work
Исключения:
try
  allHellBreaksLoose()
  catsAndDogsLivingTogether()
catch error
  print error
finally
  cleanUp()
Тут нет ничего такого, чего нет на официальном сайте, просто краткая шпаргалка.


blog comments powered by Disqus