2. Pendahuluan
● Coffeescript adalah bahasa kecil yang
dikompilasi menjadi javascript
● Inspirasi dari Ruby dan Python
● Lebih sedikit 'code' yang anda tulis
dibanding dengan Javascript, sepertiga atau
setengahnya
● Sebaiknya anda telah mengetahui javascript
● Install
○ Install nodejs (nodejs.org)
○ Install npm (npmjs.org)
○ npm install -g coffee-script
3. Syntax
● # komentar
● ###
komentar
banyak baris
###
● myVariable = "test"
● exports = this
exports.myVariable = "foo-bar"
4. Syntax
● func = -> "bar"
● func = ->
# harus indent spt Python
"bar"
● kali = (a, b=2) -> a * b # argument
● jum = (nums...) ->
# ... splats
hasil = 0
nums.forEach (n) -> result += n
result
5. Syntax
● Eksekusi Fungsi
a = "Hallo!"
alert a
alert(a) # sda
alert inspect a
alert(inspect(a)) # sda
alert inspect(a) # disarankan
6. Object
● object1 = { satu: 1, dua: 2 }
● # tanpa {}
object2 = satu: 1, dua: 2
● # menggunakan baris baru
object3 =
satu: 1
dua: 2
10. Loop & Comprehension
● for nama in ["Zuki", "Barong",
"Cel"]
alert "#{nama}"
● for nama, i in ["Zuk", "Bar", "Cel"]
alert "ke-#{i} adalah #{nama}"
● alert nama for nama in ["Zuk",
"Bar"]
● for nama in ["Zuk", "Bar"] when nama
[0] is "Z"
11. Alias & Existential
● @savior = true
# @ alias untuk this.
● User::first = @records[0]
# :: alias untuk prototype
● praise if brian?
# ? meriksa existensi object dan
bool
● velocity = southern ? 40
# sekaligus meng ||
● mrPresident.getHands()?.tulis()
12. Class
● class Warga
● warga = new Warga
● class Warga
constructor: (nama) ->
@nama = nama
● class Warga
constructor: (@nama) ->
● wargaBaru = new Warga("Widoyo")
console.log "Warga baru adalah #
{wargaBaru.nama}"
13. Instance Properties
● class Animal
price: 5
sell: (customer) ->
● animal = new Animal
● animal.sell(new Customer)
14. Instance Properties
● class Animal
price: 5
sell: =>
alert "Give me #{price}"
● animal = new Animal
● $("#sell").click(animal.sell)