JavaScript

JavaScript
Paradigması çok paradigmalı: betik, prototip tabanlı, zorunlu, fonksiyonel
İlk çıkışı Mayıs 1995) (1995-05)
Tasarımcı Brendan Eich
Geliştirici Netscape Communications Corporation, Mozilla Foundation
Kararlı sürüm

ECMAScript 6[1]

(17 Haziran 2015) (2015-06-17))
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, 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.

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 anahtar kelimesi ile tanımlanır.

/* 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

This article is issued from Vikipedi - version of the 10/14/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.