CoffeeScript

Vikipedi, özgür ansiklopedi
Atla: kullan, ara
CoffeeScript
CoffeeScript-logo.png
Paradigması Betik dili
İlk çıkışı 2009
Tasarımcı Jeremy Ashkenas
Geliştirici Jeremy Ashkenas
Kararlı sürüm 1.7.1 (29 Ocak 2014)
Etkilendikleri jQuery, MooTools, ProtoType
Etkiledikleri MoonScript
Uygulama dili JavaScript
Platformu çapraz platform
Lisans MIT Lisansı
Olağan dosya uzantıları .coffee
Web sitesi http://coffeescript.org

CoffeScript kaynaktan kaynağa derleme yapan ve JavaScript kodu üreten bir geliştirme aracıdır. Sözdizimi Python ve Ruby dillerine benzer, kod blokları girintiler ile ayrılır, JavaScript'in satır sonlarında noktalı virgül kullanma gibi yazım kurallarını da içermez, bu nedenle okunması kolaydır. Kullandığı bazı sözcükler ve yapılar sayesinde JavaScript ile uzun yazılabilecek ve okunaksız hale gelecek kodları neredeyse 3/1 oranında kısaltabilir ve kolay okunabilme imkanı sunar. Derleme işlemi çalışma zamanında değil geliştirme aşamasında yapıldığından tarayıcılarda performans kaybı söz konusu değildir.

CoffeScript yine CoffeeScript ile yazılmış bir JavaScript derleyici sunar, bu derleyici Node.js veya başka bir JavaScript runtime ile çalıştırılabilir bir derleyicidir. Derlenmiş JavaScript dosyaları doğrudan tarayıcıda veya herhangi bir JavaScript runtime ile çalıştırılabilir.

Kod örneği[değiştir | kaynağı değiştir]

Aşağıdaki örnekte CoffeeScript kodu ve bunun derlenmiş halini karşılaştırabilirsiniz.

CoffeeScript
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
JavaScript
switch (day) {
 case "Mon":
   go(work);
   break;
 case "Tue":
   go(relax);
   break;
 case "Thu":
   go(iceFishing);
   break;
 case "Fri":
 case "Sat":
   if (day === bingoDay) {
     go(bingo);
     go(dancing);
   }
   break;
 case "Sun":
   go(church);
   break;
 default:
   go(work);
}
CoffeeScript
# The first ten global properties.

globals = (name for name of window)[0...10]
JavaScript
var globals, name;

globals = ((function() {
 var _results;
 _results = [];
 for (name in window) {
   _results.push(name);
 }
 return _results;
})()).slice(0, 10);

Dış bağlantılar[değiştir | kaynağı değiştir]