CoffeeScript is so Funny , Let’s start hot coffee

Mostafa Kamal
code4mk organization
2 min readJan 15, 2018

--

variable

name = 'kamal'

string

name = 'Mostafa kamal'
career = "Developer | Designer"
html = """
<strong>
cup of coffeescript
</strong>
"""

interpolation

#{yo}

name = 'Mostafa Kamal'
age = 5
users = 'users name is #{name} and age is #{age}'

functions

-> this is functions keywords.

myfuntion = (x) -> //something

objects & array

lists = ['kamal', 'jamal', 5 , 'karim']
# objects
users = {name: "Mostafa", status: "Active"}###
objects
###
users =
infos:
name: "Max"
age: 11
profile:
status: "Developer"
salary: 1000

scoping

salary = 50000users = ->
salary = 60000
payment = salary + 100

conditions

if conditon
x = 'this is if condition'
else if condtionElse
x = 'This is else if condition'
else
x = 'This is default condition'
  • tenray ? .. : ..
if conditionKamal then kamal else notKamal

Loop

items = ['toast', 'cheese', 'wine']
eat food for food in items
# [..] to <- from
countdown = (num for num in [10..1])
if price == 500
buy() while supply > demand
sell() until supply > demand

switch / case

switch day
when "Mon" then {
test: 'kamal'
}
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

Arrow function

Account = (customer, cart) ->
@customer = customer
@cart = cart
$('.shopping_cart').on 'click', (event) =>
@customer.purchase @cart

class

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()

Modules

  • es6
import * as underscore from 'underscore'
export * from 'underscore'

try / catch

connection(
try
'done'
catch error
"username or password mismatch ! check again"
)

operators

Read here

--

--