JavaScript
JavaScript, yaygın olarak web tarayıcılarında kullanılmakta olan dinamik bir programlama dilidir. JavaScript ile yazılan istemci tarafı betikler sayesinde tarayıcının kullanıcıyla etkileşimde bulunması, tarayıcının kontrol edilmesi, asenkron bir şekilde sunucu ile iletişime geçilmesi ve web sayfası içeriğinin değiştirilmesi gibi işlevler sağlanır. JavaScript, Node.js gibi platformlar sayesinde sunucu tarafında da yaygın olarak kullanılmaktadır.
Paradigması | çok paradigmalı: betik, prototip tabanlı, zorunlu, fonksiyonel |
---|---|
İlk çıkışı | Mayıs 1995) |
Tasarımcı | Brendan Eich |
Geliştirici | Netscape Communications Corporation, Mozilla Foundation |
Kararlı sürüm |
ECMAScript 6[1] (17 Haziran 2015) ) |
Tip sistemi | dinamik, zayıf, ördek |
Önemli uygulamaları | KJS, Rhino, SpiderMonkey, V8, WebKit |
Etkilendikleri | C, Scheme, Java, Perl, Python, Self |
Etkiledikleri | JScript, JScript .NET, Objective-J, TIScript |
Olağan dosya uzantıları | .js |
JavaScript prototip-tabanlı, dinamik türlere ve birinci-sınıf fonksiyonlara sahip bir betik dilidir. Nesne yönelimli, imperatif ve fonksiyonel programlama prensiplerine sahiptir.
JavaScript ve Java arasında; isimleri, yazım şekli ve standart kütüphanelerindeki benzerlikler dışında bir bağlantı yoktur ve iki dilin semantikleri çok farklıdır. JavaScript'in yazım şekli C programlama dilinden türetilmiş, semantiği ve tasarımı ise Self ve Scheme programlama dillerinden esinlenmiştir.
JavaScript, ECMAScript belirtimleri ile standartlaştırılmıştır.
Tarihçesi
İlk olarak Brendan Eich tarafından geliştirilmiş olup, ilk defa Aralık 1995 tarihinde Netscape Navigator 2.0 ile birlikte piyasaya sürüldü. Geliştirme aşamasında adı Mocha olarak geçmesine rağmen Eylül 1995 tarihine kadar resmi olarak LiveScript olarak isimlendiriliyordu. Netscape 2.0 Beta3 ile birlikte ismi JavaScript olarak değiştirildi.
JavaScript'in isim değişikliği ile Netscape'in Java teknolojilerine (Java Applet) destek vermesi yaklaşık olarak aynı tarihlere denk gelir. Microsoft ile Netscape'in web teknolojileri ve platformları alanında yarıştığı bir dönemde, Netscape Sun Microsystems'ın geliştirdiği Java platformuna destek vererek dağıtık bir işletim sistemi yaratmayı öngörüyordu. JavaScript ise, Visual Basic'in yaptığı gibi, profesyonel olmayan programcıları hedefleyen daha basit bir betik dili olarak düşünülmekteydi.[2]
Microsoft'un uygulaması
Microsoft, 1996 yılında JScript ve VBScript betik dillerini yayınladı. JScript Netscape'in JavaScript'ine benzerken VBScript Visual Basic temelliydi ve var olan Visual Basic programcılarının kolay bir geçiş yapmasını hedefliyordu. Aynı dönemde Microsoft ilk defa CSS desteği de sağladı ancak hem CSS hem de JScript desteği Netscape'in o zamana kadar sağladıkları ile tutarlı çalışmıyordu. Bu durum web tasarımcıları ve geliştiricileri arasında bir kargaşa yaratmış ve tarayıcı savaşlarının ilk yıllarında sitelerin altında tipik olarak görülen "En iyi Internet Explorer ile izlenir" ya da "En iyi Netscape ile izlenir" gibi logoların ortaya çıkmasına neden olmuştur[3].
Standartlaşma
1996 yılının kasım ayında Netscape firması JavaScript'in endüstri standardı olarak belirlenmesi amacıyla Ecma International firmasına başvuruda bulunduğunu ilan etti. Bunun sonucunda standardize edilen sürüm ECMAScript olarak isimlendirildi ve 1997 yılının haziran ayında Ecma International, ECMA-262 belirtiminin ilk sürümünü yayımladı. Haziran 1998'de ISO/IEC-16262 standardına uyumlu hale getirilecek değişiklikler yapılarak ikinci sürüm, Aralık 1999'da ise üçüncü sürüm yayımlandı.
ECMAScript'in dördüncü sürümü üzerinde ciddi bir çalışma yapılmasına rağmen asla tamamlanamadı, ancak beşinci sürüm için önemli bir ilham kaynağı oldu[4]. Beşinci sürüm 2009 yılının aralık ayında yayımlandı. ECMAScript'in şu an geçerli olan son standart belirtimi, Haziran 2011 tarihinde yayımlanan 5.1 sürümüdür ve Javascript 1.8.5 tarafından desteklenmektedir[5].
NodeJS
Node.js hızlı, ölçeklenebilir ağ uygulamaları oluşturmak için Chrome'un JavaScript Runtime teknolojisi üzerine kurulu bir platformdur. Node.js, dağıtık sistem olarak çalışabilen gerçek zamanlı uygulamalar için hafif ve verimli hale getiren olay odaklı, bloke etmeyen G/Ç (non-blocking I/O) modeli kullanır.
Değişkenler
JavaScript’te değişkenler var, let ve const anahtar kelimeleri ile tanımlanabilir.
/* aşağıdaki cümle x değişkeninin varlığını ilan eder
* ve undefined özel değerini x değişkenine atar. */
var x;
/* aşağıdaki cümle y değişkeninin varlığını ilan eder
* ve 2 değerini y değişkenine atar. */
var y = 2;
Fonksiyonlar
Fonksiyon tanımlamak için aşağıdaki gibi function anahtar kelimesini kullanabiliriz.
function faktoriyel(sayi) {
if (sayi == 0) {
return 1;
}
return sayi * faktoriyel(sayi - 1);
}
Yukarıdaki özyinemeli fonksiyon, girilen değerin faktoriyelini hesaplamada kullanılabilir. Eğer JavaScript yorumlayıcınız console objesini sunuyorsa, bu örneği aşağıdaki gibi deneyebilirsiniz.
/* Aşağıdaki kod 6 yazdırmalıdır.
* faktoriyel(0) = 1
* faktoriyel(1) = faktoriyel(0) * 1 = 1
* faktoriyel(2) = faktoriyel(1) * 2 = 2
* faktoriyel(3) = faktoriyel(2) * 3 = 6
*/
console.log(faktoriyel(3));
Dış bağlantılar
Kaynakça
- "Standard ECMA-262". Ecma International. 17 Haziran 2015. 30 Aralık 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Haziran 2015.
- Severance, Charles (February 2012). "JavaScript: Designing a Language in 10 Days".Computer (IEEE Computer Society) 45 (2): 7–8. doi:10.1109/MC.2012.57.
- "EcmaScript Belgelendirmesi". 26 Nisan 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Nisan 2015.
- ECMAScript 5 support in Mozilla