Bagikan laman ini

Belajar X dalam Y Menit

Dimana X=CoffeeScript

CoffeeScript adalah bahasa sederhana yang diterjemahkan saat kompilasi ke dalam JavaScript, dan bukan diterjemahkan pada saat runtime. CoffeeScript mencoba agar kode JavaScript yang dihasilkan tetap mudah dibaca dan kompatibel dengan semua runtime JavaScript.

Lihat juga website CoffeeScript yang memiliki tutorial lengkap tentang CoffeeScript.

# CoffeeScript adalah bahasa hipster.
# Mengikuti tren bahasa modern lainnya.
# Sehingga, seperti Ruby dan Python, untuk komentar digunakan tanda pagar.

###
Ini adalah contoh blok komentar, yang nanti diterjemahkan langsung ke '/ *' dan '* /'
pada kode JavaScript yang dihasilkan.

Anda diharapkan sedikit memahami semantik JavaScript sebelum melanjutkan tutorial ini.
###

# Pengisian nilai variabel:
angka = 42 #=> var angka = 42;
kebalikan = true #=> var kebalikan = true;

# Kondisi:
angka = -42 if kebalikan #=> if(kebalikan) { angka = -42; }

# Fungsi:
kuadrat = (x) -> x * x #=> var kuadrat = function(x) { return x * x; }

isi = (wadah, cairan = "kopi") ->
  "Mengisi #{wadah} dengan #{cairan}..."
#=>var isi;
#
#isi = function(wadah, cairan) {
#  if (cairan == null) {
#    cairan = "kopi";
#  }
#  return "Mengisi " + wadah + " dengan " + cairan + "...";
#};

# Rentang:
list = [1..5] # => var list = [1, 2, 3, 4, 5];

# Objek:
fungsi_matematika =
  akar:   Math.sqrt
  kuadrat: kuadrat
  kubik:   (x) -> x * kuadrat x
#=> var fungsi_matematika = {
#    "akar": Math.sqrt,
#    "kuadrat": kuadrat,
#    "kubik": function(x) { return x * kuadrat(x); }
#   };

# *Splat*:
balapan = (pemenang, pelari...) ->
  print pemenang, pelari
#=>balapan = function() {
#    var pelari, pemenang;
#    pemenang = arguments[0], pelari = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
#    return print(pemenang, pelari);
#  };

# Cek keberadaan:
alert "Elvis ada!" if elvis?
#=> if(typeof elvis !== "undefined" && elvis !== null) { alert("Elvis ada!"); }

# Komprehensi *array*:
kubik_kubik = (fungsi_matematika.kubik angka for angka in list)
#=>kubik_kubik = (function() {
#     var _i, _len, _hasil;
#     _hasil = [];
#     for (_i = 0, _len = list.length; _i < _len; _i++) {
#         angka = list[_i];
#         _hasil.push(fungsi_matematika.kubik(angka));
#     }
#     return _hasil;
#})();

sayur_sayuran = ['brokoli', 'bayam', 'kemangi']
makan sayuran for sayuran in sayur_sayuran when sayuran isnt 'kemangi'
#=>sayur_sayuran = ['brokoli', 'bayam', 'kemangi'];
#
#for (_k = 0, _len2 = sayur_sayuran.length; _k < _len2; _k++) {
#  sayuran = sayur_sayuran[_k];
#  if (sayuran !== 'kemangi') {
#    makan(sayuran);
#  }
#}

Referensi Tambahan


Punya saran atau mungkin koreksi? Buka sebuah Issue di GitHub Repo kami, atau buat sebuah pull request!

Awalnya merupakan kontribusi Tenor Biel, dan telah diperbaharui oleh 2 contributor(s).