+2
şimdi bu programlama diliyle ilgili biraz bilgi vereyim.
1) ilk iş programlama dili değil scripting dili diyecek olanlar şaşıracak çünkü JS sayfa yüklendiğinde ilk iş compile edilir.
2) isim benzerliği dışında Java ile alakası yoktur. Java ile Javascript, Kar ile Karnaval kadar alakalıdır.
3) Dünyanın açık ara en yaygın kullananılan dilidir.
4) Öncelikle client side yani browser'da çalışsın diye gelişmiştir ancak bu durum değişmektedir. Node.js ve benzeri ortamlar sayesinde server üzerinde de çalışır.
5) Web ve mobil aplikasyon geliştiricileri server tarafta Apachi PHP MySQL falan kullanıp client side JS Jquery HTML5 CSS3 ile uğraşacağımıza dıbınakoym her yerde JS kullanak demiştir. Bunun üzerine Server side Node.js üzerinde çalışan, Meteor.js gibi JS uygulamalarıyla yeni asenkron webin önü açılmıştır. Full JS Stack olayı.
6) JS hayvan gibi ekgibsiz bir dildir. Diğer dillerin çoğundan birşeyler almış olmakla birlikte tamamen kendisine has bir dildir. Öğrenmesi ve bir şeyler yazmaya başlaması kolaydır ama kendine has özellikleri anlayıp kullanmaya başlayana kadar gerçek üstünlüğünü göremeyeceğiniz de bir dildir. Object oriented dir ama diğer OO dillerine benzemez. Neredeyse her şey bir objedir. Yeni objeler üretmek için Class yapısı bulunmaz. Prototypal bir obje yapısına sahiptir. Diğer OO dillerdeki inheritence yerine delegation mantığı çalışır. Yani yeni objeleri diğer objelerden üretip dilediğiniz gibi modifiye edebilirsiniz ancak Class yapısındaki gibi bir class'dan obje kopyalanmaz. Yaratılan objeler mutlaka bir üst objeye linklidir (hiç birşeye linkli değilse önce kendi prototype'ına sonra object. prototype default objesine linklidir) ve şayet bilfiil kendisinde ekgibse linkli olduğu objenin tüm property ve fonksiyonlarına otomatikman erişir. Bunun için Javascript prototypal inheritance (çok kullanılsa da bu prototypal inheritance tabiri pek beğenilmiyor çünkü property veya fonksiyon olsun bağlantılı olunan objenin herhangi bir malına sahip olunmuyor. Sadece görevlendirme yoluyla iş veriliyor) konusunu iyi anlamak gerekir.
Javascript'te fonksiyonlara parametre (argüman) olarak başka bir fonksiyon geçirebilirsiniz. Bu geçirilen fonsiyona callback fonksiyon adı verilir ve ana fonksiyon işini bitirdikten sonra callback fonksiyonu çağırır. Asenkron çalışmanın kalbini callback fonksiyonlar oluşturur.
This, Prototype, Scope, Callback ve Closure mantığını iyi anlayabilen insan Javascript ile herşeyi yapar.
Bunun dışında özellikle karşılaştırmalarda JS'nin falsy ve truty değerlendirmelerini nasıl yaptığını bilirseniz çok ciksi ve fantastik bir takım mükemmelliklerini de kullanabilirsiniz.
Mesela:
function documentTitle(theTitle) {
if (!theTitle) {
theTitle = "Untitled Document";
}
}
yazmak yerine
function documentTitle(theTitle) { theTitle = theTitle || "Untitled Document"; }
dersin olur biter.
veya
function isAdult(age) {
if (age && age > 17) {
return true;
}
else {
return false;
}
}
yerine
function isAdult(age) { return age && age > 17 ; }
der geçersin amk.
Tümünü Göster