Bu sayfada jQuery fonksiyonlarının kullandığı ve jQuery tarafından kısıtlanmış veri tipleri veya JavaScript'in kendi veri tipleri açıklanıyor. Aşağıda verilen örneklerin çoğunu tarayıcınızın geliştirici araçları penceresindeki konsolda direk kopyalayarak deneyebilirsiniz.
JavaScript Array , dahili metodları ile değiştirilebilir bir değerler listesidir. Array değerler şöyle girilir:
Bir array'in veri tipi object'dir.
Array elemanlarına ulaşmak için köşeli parantez notasyonu kullanılır.
Bir array elemanları üzerinde iterasyon yapmak için length
özelliği
kullanılabilir.
Performans önemliyse her turda array uzunluğunu sormak yerine :
Bir diğer yaklaşımsa her tur için bir değişkene o anki array elemanını koymak. Ama bu yaklaşım eleman değeri 0 veya boş string olan array'ler için çalışmaz.
Elemanlar bittiğinde item = a[i]
false değeri döneceğinden döngü biter.
JQuery bir nesne ya da array'in elemanları üzerinden iterasyon yapmak için
each metoduna sahiptir.
Bu callback fonksiyonun dezavantajı döngü esnasında hangi elemandaysa kapsam o olarak
callback çağrılacağından, bulunduğunuz yerde this
kelimesi anlamı değişir.
Eğer gerekliyse dikkat etmelisiniz.
Array'e eleman eklemek için length
özelliği de kullanılabilir. Bu .push()
metodu ile aynı işi yapar.
Her iki kullanımı da JavaScript kütüphanesi kodunda sıklıkla görebilirsiniz.
Diğer dahili metodları ise, reverse, join, shift, unshift, pop, slice, splice ve sort :
Bir array elemanları olsun ya da olmasın asla false vermez
JQuery API dökümanında sıklıkla Array<type> notasyonu karşınıza çıkar.
Bu parametrenin sadece bir array değil , string değerlerden oluşan bir array olması gerektiğini belirtir. Bu amaçla Java ya da C++ notasyonundan öykünülen bu notasyonla ifade edilir.
Ya bir JavaScript array ya da negatif olmayan length
ve 0
'dan
length-1
'e kadar index özelliği olan nesneler. İkinci çeşit array benzeri
nesneler web tabanlı kodlarda çok rastlanır, mesela arguments
nesnesi ya da
birçok DOM metodundan dönen NodeList
nesnesi gibi. JQuery'deki düz nesneler
length özelliğine sahipse array benzeri nesne gibi davranabilir.
JavaScript'de boolean bir değer true ya da false olabilir.
PlainObject tipi sıfır ya da daha fazla key/value çifti değer içeren
JavaScript nesnesidir. JQuery dökümanında plain denmesi sebebi, onu diğer
JavaScript nesnelerden ( null
, kullanıcı tanımlı array'ler, document
gibi typeOf deyince object denen diğerleri vs. ) ayırt etmek içindir.
jQuery.isPlainObject() metodu aşağıda
gösterildiği gibi parametrelerin düz nesne olup olmadığını test için kullanılabilir.
Document Object Model (DOM) içinde bir elemanın bağlı özellikleri , yazısı ve alt elemanları olabilir. Üst elemanı ve alt elemanlarına erişip özelliklerini değiştirmek için metodlara sahiptir. DOM API özellikleri ve uyarlamalarındaki tutarsızlıklar yüzünden kullanımları sorun üretebilir. JQuery size bu elemanların DOM etkileşimlerinde yardımcı olacak bir "wrapper" sağlar.
JQuery'nin .each()
metodunu veya olay işleyici metodlardan birini bir jQuery
kolleksiyonunda kullandığınızda , callback metodunun kapsamında this
kelimesi
bir DOM elemanını gösterir.
Aşağıdaki örnekte bir text input elemanında bir şey yazmadan başka yere geçince bir alert mesajı veriliyor.
Burada standart this.value
yerine jQuery şekliyle $(this).val()
de yazabilirsiniz, ama bu size artı bir şey kazandırmaz.
JavaScript'de bir fonksiyon (function) isimli ya da anonim olabilir. Herhangi bir fonksiyon bir değişkene atanabilir ya da bir metoda parametre olarak verilebilir. Örnek:
JQuery kodlarında çok fazla sıklıkta anonim fonksiyonlara rastlarsınız
Bir fonksiyonun veri tipi "function" dur.
Bir fonksiyon tanımı içinde arguments özel değişkeni her zaman kullanılabilir. Bir array gibidir ve length özelliği vardır, ancak array metodlarının çoğu ile çalışmaz. Fonksiyon çağrılırken girilen argümanların (parametrelerin) oluşturduğu bir sahte array gibidir.
arguments nesnesi aynı zamanda callee adında bir özelliğe sahiptir. Bu özellik aslında o fonksiyonun tanımıdır. Örnek:
JavaScript'de this değeri her zaman bulunulan bağlamı (context) ifade eder. Default olarak this ana eleman olan window nesnesidir. Bir fonksiyon içerisinde bağlam o fonksiyonun nasıl çağrıldığına göre değişir.
JQuery'de olay işlerken o olayın oluştuğu eleman bağlam olur ve böylece olay işleyici fonksiyon içinde this kelimesi olayın gerçekleştiği eleman olur.
Bir fonksiyon için bağlamı .call()
ve .apply()
metodlarını
kullanarak değiştirebilirsiniz. Aralarındaki fark parametreleri fonksiyona nasıl
geçirdikleri ile alakalıdır. .call()
verilen parametreleri virgülle
ayrılmış olarak fonksiyona verirken , .apply()
bir array içinde verilen
değerleri parametre olarak fonksiyona geçirir.
JavaScript'de bir fonksiyon içinde tanımlanmış tüm değişkenler o fonksiyon kapsamı içinde kullanılabilir. Örneğe bakalım:
Global kapsamda bir x değişkeni tanımlanıyor, hemen çalışacak bir anonim fonksiyon tanımı içinde (fonksiyon tanımı sonrası gelen parantez açıp kapama hemen çalışması için konulur) bir diğer x değişkeni başka bir değerle tanımlanıyor. Dikkat ederseniz fonksiyon içinde başka değer , dışında başka değer veriyor konsola.
Kapalı değerler bir değişken bulunulan kapsam dışında tanımlanıp daha iç bir kapsamdan erişildiğinde oluşur. Aşağıdaki örnekte üret fonksiyonu kapsamındaki sayaç değişkeni arttır ve yazdır metodları tarafından görülebilir, ama onların haricinden görünemez.
Bu patern size dışarıdan görünmeyen özellik verilerini işleyebilen metodları olan nesneler üretme imkanı verir. Nesne yönelimli programlamanın temeli (oop).
JQuery dökümanında Anything şeklinde yazılan veri tipi orada herhangi tip bir veri olabileceğini anlatır.
Integer düz sayı bir değerdir. Matematikte tam sayı diye bildiğimiz değerdir. Noktalı olmayan sayı demek. İşlem yapılması için emin olunabilecek limitleri:
Bir jQuery nesnesi bir HTML string ile üretilmiş veya dökümandan seçilerek bulunmuş DOM elemanlarından bir kolleksiyondur. JQuery metodları elemanları bulmak için sıklıkla CSS seçicilerini kullandığı için jQuery nesneleri genellikle "eşleşen elemanlar" ya da "seçilen elemanlar" olarak adlandırılır.
JQuery nesnesi bir array gibi davranış sergiler, length
özelliği vardır ve
üyelerine [0]
'dan [length - 1]
'e kadar index değerleri ile
erişilebilir. Dikkatinizi çekerim jQuery nesneleri standart JavaScript Array nesneleri
ile aynı değildir, mesela .join()
gibi birçok array metodu çalışmaz.
Çoğunlukla jQuery()
(yada "$()") metodunu kullanarak jQuery nesneleri
oluşturursunuz. jQuery.noConflict()
ile engellemediğiniz müddetçe
jQuery()
yerine eşleniği olan $()
metodunu da kullanabilirsiniz.
Birçok jQuery nesne metodları yine jQuery nesnesi döndüğü için metodlar zincirleme arka
arkaya bağlanabilir.
örnekte .css()
metodu sadece bir özelliğini değiştirip bize aynı jQuery nesnesini
( $("p") ) geri döner. Ama .find()
metodu yeni bir eleman seti oluşturarak bize
yeni bir jQuery nesnesi döner, o noktadan sonra bu yeni jQuery nesnesi geçerli olacaktır. Bir
önceki jQuery nesnesine (önceki eleman setine) geri dönmek için .end()
metodu
kullanarak zinciri bozmadan devam edilebilir.
Bir jQuery nesnesi boş olabilir, yani içinde hiç bir DOM elemanı olmaz. Boş bir jQuery
nesnesini $()
metodunu parametresiz olarak kullanarak üretebilirsiniz. Bir jQuery
nesnesi eğer sorgu hiç bir eleman seçemediyse veya bir zincir metod elemanları filtrelerken
tüm elemanlar dışarda kalırsa da boş nesne olabilir. Bu bir hata değildir, sadece sonrasında
gelecek metodlar eleman olmadığı için hiç bir şey yapamaz. Örneğin aşağıdaki kodda eğer
.badEntry
sınıfında eleman bulunamazsa hiç bir elemanın rengi kırmızı olamaz.
JQuery versiyon 1.5 sonrası $.ajax() metodu jqXHR nesnesi dönmeye başladı. Bu nesne XMLHTTPRequest JavaScript nesnesinin bir süperseti. Daha fazla bilgi için $.ajax() metodu jqXHR başlığına bakınız.
JavaScript^de her şey bir nesnedir. Bir nesne üretmenin yolu nesne literal kullanmaktır.
Nesnelerin veri tipi Object'tir.
Bir nesnenin özelliklerine nokta notasyonu ile ulaşılır.
Array notasyonu ile de nesne özelliklerine erişilebilir. Bu sayede dinamik erişimler mümkün olur.
Nesne özellikleri üzerinden iterasyon for-in döngüsü ile kolayca yapılır.
JQuery'nin each() metodu nesne özelliklerinde iterasyon için kullanılabilir.
Callback fonksiyonu nesnenin her özelliği için tek tek çalışır.
Bir nesne özellikleri olsun ya da olmasın asla false default vermez.
JQuery'nin olay sistemi , olayları W3C standartlarına göre düzenler. Olay işleyiciye olay nesnesinin gönderilmesi sağlanır. target, relatedTarget, which, metaKey ve pageX/Y özelliklerini ve stopPropagation() ve preventDefault() metodlarını içerir.
Bu özellikler hepsi örneklerle Event Nesnesi başlığında anlatılmıştır.
--------------------- TO DO ----------------------JavaScript'te sayılar double-precision 64-bit format IEEE 754 standardı değerlerdir. string'ler gibi temel basit tiplerdendir. c-temelli dillerde kullanılan tüm operatörler JAvaScript sayılarda kullanılır. (+, -, *, /, %, =, +=, -=, *=, /=, ++, --)
Bir sayının veri tipi number olur
Bir sayı değeri sıfırsa false
default verir.
Sayılar double-precision format olduğu için aşağıdaki örnek bir hata değildir.
Seçici deyim bir DOM dökümanından jQuery'nin DOM elemanları seçmesi için kullanılır. Bu döküman birçok durumda tüm tarayıcıların verdiği DOM dökümanıdır, ama bazen Ajax ile alınan bir XML dökümanı da olabilir.
Seçici deyimler standart CSS seçicileri ve bazı ilave şeylerdir. JQuery'deki olası tüm seçiciler Seçiciler API Sayfasında görülebilir.
--------------------- TO DO ---------------------JavaScript Math nesnesi içinde sayılarla işler yapmak için birçok yardımcı metod sunar.
parseInt ve parseFloat metodları ile string değerler sayıya dönüştürülür. Her ikisi de ayrıca belirtilmemişse örtülü (implicit) olarak dönüşümü yaparlar.
Bir string'e sayı eklediğinizde sonuç her zaman bir string olur. Eğer önce sayıları toplayıp sonra bir string'e eklemek isterseniz, sayıları parantez içine alın. Çünkü opeartör aynı olduğu için sırayla string'e dönerler.
Ya da JavaScript'in String sınıfı yardımıyla sayıları string'e dönüştürebilirsiniz.
Bazen ayrıştırma (parsing) işlemi sayı sonuç vermiyorsa NaN değeri döner. isNaN metodu bunu algılamak için kullanılır.
Sıfıra bölmek sonsuz (Infinity) değer döner
NaN ve Infinity her ikisi de veri tipi olarak "number" verir.
Not olarak NaN değerlerini karşılaştırmak ilginçtir.
Fakat
JavaScript'in temel veri tiplerinden olan String, boş, tek karakter ya da bir çok karakterden oluşan yazı dizisidir.
Bir string değer tek ya da çift tırnak içinde yazılmalıdır. Yazı değer içinde tek tırnak kullanmak gerekirse çift tırnak ile , çift tırnak kullanmak gerekirse tek tırnak içinde verilir. Eğer çift tırnak içinde yine çift tırnak gerekirse (ya da tek tırnak içinde tek tırnak gerekirse) ters slash ( \ ) ile beraber yazılır.
Bir JavaScript string'in onu işlemek için birkaç dahili tanımlı metodu vardır. Genellikle yine bir string değer dönerler - ya da örneğin split bir Array değer döner.
Tüm string'lerde length
özelliği vardır.
Boş bir string false değere karşılıkdır
.
.