![]() |
|
|||||||
| Kayıt ol | Yardım | Üye Listesi | Ajanda | Arama | Bugünki Mesajlar | Bütün Forumları okunmuş kabul et |
| Js Js Hakkında Herşey, Js Kodları |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) | ||
|
Kıdemli Üye
Üyelik tarihi: Apr 2008
Mesajlar: 149
Tecrübe Puanı: 1
![]() Thanks: 0
Thanked 2 Times in 2 Posts
|
Javascript’in Temel İlkeleri Web Browser programları, Javascript komutlarını yorumlayabilmek için, HTML’in içinde <SCRIPT LANGUAGE=”Javascript”> etiketini ararlar ve </SCRIPT> etiketini gördükleri anda bu yoruma son verir; HTML yorumuna dönerler. Bu etikette, kullanacağınız Javascript sürümünü de belirtebilirsiniz. Javascript, şu anda 1.3’ncü sürümünde. Ancak Netscape 2.0 ve 2.2 ile IE 3.0, Javascript’in 1.0 ve 1.1 sürümlerini tanıyabilir. Her iki Browser’ın 4’ncü sürümleri ise Javascript 1.2 ile uyumludur. Script etiketinde sürüm yazmazsanız, her iki Browser da 1.0 sürümünü kullandığınızı varsayar. Netscape ileri sürümlere ait komutları (eğer tanıyorsa) icra eder, tanımıyorsa görmezden gelir. IE ise belirttiğiniz sürümden ileri komutları tanımaz ve hata mesajı verir. Kullanılan Browser türleri ve sürümlerine ilişkin istatistikler dikkate alınırsa, bu satırları kaleme aldığımızda en güvenli sürüm 1.2’dir. Javascript Yazım Kuralları Browser’ların Javascript yorumlama bölümleri, kodların arasında yer alan yorum ifadeleri ile boşlukları atar; geri kalan kelimeleri beşe ayırarak ele alırlar: 1. Belirleyiciler (Identifier): Javascript dilinin değişkenleri, metodları ve nesnelerini belirleyen isimlere Belirleyiciler denir. Bu sınıfa giren bütün kelimeler ya harfle ya da alt çizgi (_) ile başlar. Rakam veya diğer işaretler birinci karakter olarak kullanılamaz, fakat daha sonra kullanılabilir. Javascript, aynı kelimenin büyük harfle yazılanı ile küçük harfle yazılanını farklı isimler olarak görür. Bu sınıfta giren kelimelerin içinde boşluk olamaz. Javascript kodlarınız sizin bilgisayarınızda değil, ziyaretçinin bilgisayarında çalıştırılacağına göre, kullandığınız karakterlerin ziyaretçinin bilgisayarında nasıl bir değer taşıyacağını düşünmeniz gerekir. Bu bakımdan güvenli yol, Bu sınıfa giren kelimelerde, İngilizce alfabede bulunmayan, Türkçe ve diğer dillerdeki high-ASCII karakterleri (ı, İ, ğ, Ğ, Ş, Ş ile ü, Ü, ö, Ö, ç ve Ç) kullanmamaktır. Aşağıda doğru ve yanlış belirleyici kelime örneklerini bulacaksınız: Doğru Yanlış sonucgoster sonuc goster ikincidegisken 2ncidegisken _gelen #gelen Anahtar kelime grubundaki kelimeler de bu sınıfta kullanılamaz. 2. Anahtar Kelimeler (Keyword): Javascript dilinin önceden tanımlanmış ve programın yorumunda özel anlam kazandırılmış kelimelerine Anahtar Kelime denilir. Aşağıda bu kelimelerin yanında kelime anlamlarını göreceksiniz; fakat ilerledikçe bu kelimelerin Javascript’te kullanıldıkları yere göre anlamlarını ve nerelerde kullanıldıklarını göreceğiz. Javascript 1.0’deki anahtar kelimeler: break (kes) continue (devam et) else (başka bir durum) false (yanlış) for (için) function (işlev) if (eğer) in (içinde) int (integer, tam sayı) new (yeni) null (boş değer) return (dön) this (bu) true (doğru) var (variable, değişken) while (... iken) with (ile) Javascript 1.i ile eklenen anahtar kelimeler: typeof (türü) void (geçersiz) Javascript 1.2 ile eklenen anahtar kelimeler: do (yap) labeled (etiketli) switch (değiştir) 3. Ayrılmış Kelimeler (Reserved): İkinci gruba girsin-girmesin bazı kelimeler, ilerde Javascript programlama ve yorumlama işlerinde kullanılabileceği düşüncesi ile, bir kenara ayrılmıştır; Javascript kodlarında kullanılamazlar. Bu listede yer alan ve halen Anahtar Kelime listesine girmiş bir kelime değişken, fonksiyon, nesne veya metod adı olarak kullanılırsa, program hata verir; henüz anahtar kelime listesine alınmamış olmakla birlikte “rezerv edilmiş” bu kelimelerin geçtiği komut satırı ise görmezden gelinir. Javascript programlarınızda kullanmayacağınız kelimelerin listesi şöyledir: abstract (soyut) boolean (Boolean Mantığı) break (kes) byte (bayt) case (hal) catch (yakala) char (karakter) class (sınıf) const (sabit) continue (devam) default (varsayılan) delete (sil) do (yap) double (çift) else (başka bir durum) extends (uzanır) false (yanlış) final (sonuncu) finally (sonunda) float (kesirli) for (için) function (işlev) goto (--ya git) if (eğer) implements (uygular) import (ithal et) in (içinde) instanceof (--nın oluşumu) int (integer, tam sayı) interface (arayüz) labed (etiketli) long (uzun) native (kendinden olan) new (yeni) null (boş değer) package (paket) private (özel) protected (korunmuş) public (genel) return (dön) short (kısa) static (sabit) super (kuvvet) switch (değiştir) synchronized (uyumlu) this (bu) throw (içine kat) throws (içine katar) transient (geçici) true (doğru) try (dene) typeof (türü) var (değişken) void (geçersiz) while (iken) with (ile) 4. Değerler (Literal): Javascript kodu icra edildiği sırada değişmeyen rakam veya metinlere Değer denir. Javascript kodlarında beş tür değer bulunur: a. Tamsayı Değerler (Integer Literal): Tamsayılar, 10 tabanlı (ondalık, decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal) olabilir. 8 tabanlı sayıları belli etmek için sayıdan önce sıfır, 16 tabanlı sayıları belli etmek için sıfır ve x harfi kullanılır. Hexadecimal sayılarda 9’dan büyük sayılar A, B, C, D, E ve F harfleri ile yazılır. (Sayının basamaklarını okuma kolaylığı sağlamak için, nokta değil, virgül ile ayırmalısınız.) Örnek: Decimal 46,789; Octal 072,7898; Hexadecimal: 0x7B8. b. Kesirli Değerler (Floating-point literal): Tam sayı bölümünü bir ondalık nokta (virgül değil) ile kesir bölümü izleyen sayılar. Örnek: 3987.786, -1.1. c. Boolean Mantık İfadeleri (Boolean Literal): Javascript dilinde, Boolean Mantığı, iki sonuç verir: True (Doğru) ve False (Yanlış). Javascript, True (Doğru) değerini 1, False (Yanlış) değerini 0 rakamıyla tutar. Bir denklemin sonucunun doğru veya yanlış olduğunu irdelerken, Javascript metninde bu iki kelime küçük harfle yazılmalıdır. Dolayısıyla büyük harfle yazılmış TRUE ve FALSE kelimeleri, değişken, fonksiyon, nesne ve metod adı olarak kullanılabilir. Tabii, bir süre sonra kafanız karışmazsa! d. Alfanümerik (Karakter) Değerler (String literal): İki adet çift-tırnak (“) veya tek-tırnak (‘) içine alınan her türlü ifade, Javascript için String değeridir. (Çeşitli Türkçe bilgisayar kaynaklarında “String literal” terimi “karakter değişken” olarak belirtilmektedir. “Karakter” bu değerlerin örneğin sayı değerlerden farkını anlatmıyor. Bazı kaynaklarda ise hem rakam, hem de harf içerdikleri, buna karşılık sayı olmadıkları gerçeğini belirtmek amacıyla, daha aşina olduğumuz alfanümerik terimini görmek mümkün. Ben bu ikincisini benimsiyorum.) Bir Javascript metninde alfanümerik değerleri bir tek tırnakla, bir çift tırnakla gösteremezsiniz. Başta nasıl başladıysanız, programın sonuna kadar bütün alfanümerik değerleri aynı tür tırnak içinde göstermelisiniz. Alfanümerik değer olarak verdiğiniz karakterler, daha sonra bir HTML sayfada bir nesnenin bir unsurunun değeri (örneğin bir TEXTAREA’nın içeriği) olarak kullanılacaksa ve HTML sayfa, meta etiketlerinde kendisinin Türkçe olarak yorumlanmasını sağlayacak ifadeye sahipse, Türkçe karakter ve diğer yüksek ASCII kodlardaki karakterleri içerebilir. Örnekler: “Bugün hava çok güzel” ‘Bugün hava güzel değil’ “123 adet yumurta” ’23,234,678.987’ e. Özel Karakterler Özellikle alfanümerik değerleri verirken, Browser’a metin görüntüleme konusunda biçim veya hareket komutları da vermek isteyebilirsiniz. Bunu, bazı kod harflerin önüne ters-bölü işareti koyarak yapabilirsiniz. Bu tür özel karakterler şunlardır: \b - Klavyede Geri (backspace) tuşunun görevini yaptırır. \f - Yazıcıya sayfayı bitirmeden çıkarttırır (formfeed). \n - Yazı imlecini yeni bir satırın başına getirir (new line) \r - Klavyede Enter-Return tuşunun görevini yaptırır. \t - Sekme (tab) işaretini koydurur. \\ - Yazıya ters-bölü işareti koydurur. \’ - Yazıya tek-tırnak işareti koydurur. \” - Yazıya çift-tırnak işareti koydurur. Javascript’e bu tür özel karakterlerle HTML sayfasına bir metin yazdıracağınız zaman, bu yazının <PRE>..</PRE> etiketleri arasında olması gerekir. Aksi taktirde Javascript ne yazdırırsa yazdırsın, HTML bu özel karakterleri dikkate almayacaktır. Javascript Değişkenleri (Variable) Değişken, adı üstünde, Javascript yorumlayıcısı tarafından bilgisayarın belleğinde tutulan ve içerdiği değer programın akışına göre değişen bir unsurdur. Değişkenlerin bir adı olur, bir de değeri. Program boyunca beğişkenin adı değişmez; fakat içeriği değişebilir. Değişkenlere isim verirken Belirleyici isimleri kurallarına riayet etmeniz gerekir. Yani bir değişkenin adı rakamla veya alt çizgi (_) dışında bir işaretle başlayamaz. Javascript, büyük harf-küçük harf ayırt ettiği (case-sensitive olduğu) için, örneğin SONUC ve sonuc kelimeleri iki ayrı değişken gösterir. Bir değişkeni tanımlarken, büyük harf kullandıysanız, program boyunca bu değişkeni büyük harle yazmanız gerekir. Değişken tanımlamak, bilgisayar programcılarına daima gereksiz bir yük gibi görünür. Birazdan göreceğiz, Javascript sadece değişkenleri tanımlamayı zorunlu kılmakla kalmaz, fakat nerede tanımlandığına da özel bir önem verir. Javascript’e bir Belirleyici’nin değişken olarak kullanılacağını bildirmek için “var” anahtar-kelimesini kullanırsınız: var sonuc var adi, soyadi, adres, siraNo var i, j, k var mouseNerede, kutuBos, kutuDolu Gördüğünüz gibi, bir “var” satırında birden fazla değişken tanımlayabilirsiniz. Bazı diğer programlardan farklı olarak Javascript, size değişkenleri hem beyan, hem de içeriğini belirleme işini aynı anda yapma imkanı veriyor (initialization): var sonuc = ”Merhaba Dünya!” var adi = ”Erhan”, soyadi = ”BAYRAK” var i = 100, j = 0.01, k = 135 var kutuBos = false, kutuDolu = true Gerekiyorsa, bir değişkeni önce tanımlar, sonra değerini belirleyebilirsiniz: var kutuBos = false, kutuDolu kutuDolu = true Javascript, programcıya bir değişkeni tanımlamadan “initalize etme” (içine doldurma) imkanı da verir; bu durumda o değişken genel (global) nitelik kazanır. Buna birazdan değineceğiz; ama iyi programlama tekniği ve özellikle daha sonra hata arama zorunluğu sebebiyle, değişkenlerin açık-seçik tanımlanması en doğru yoldur. Bir değişkeni tanımlayarak içini doldurmadan (initialization’dan) önce içindeki değeri sorgulamaya kalkarsanız, Browser’ın Javascript yorumlayıcısı o noktada durur ve tanımlanmamamış (undefined) değişken hatası verir. Javascript programlarında beş tür değişken bulunabilir: 1. Sayı (number): -14, 78, 87678 Sayı türündeki değişkenler, tam sayı, ondalık sayı, pozitif sayı veya negatif sayı olabilir. Sayı değişkenlerle aritmetik işlemler yapılabilir. var eni = 9, boyu = 4 var alani = eni * boyu document.writeln(alani) Bu kod örneği ile Javascript, Browser penceresi içindeki belgeye “alani” adlı değişkenin değerini (36) yazdıracaktır. 2. Boolean değişken: true, false Javascript, tanımlanırken değeri “true” (doğru) veya “false” (yanlış) olarak belirtilen değişkenleri otomatik olarak Boolean değişken olarak sınıflandırır ve sorguladığınızda “true” için 1, “false” için 0 değerini verir. 3. Alfanümerik (String) Değişken: “Merhaba Dünya!” Alfanümerik değişken, kendisine tek veya çift tırnak içinde verilen bütün karakterleri tutar, ve sorulduğunda aynen bildirir. Alfanümerik değişkenin içi boş olabilir (var adi = “”, soyadi = “”). Alfanümerik değişkenler, tabir yerinde ise “toplandığında” değişkenlerin değerleri sırayla birbirine eklenir: var adi = “Osman”, soyadi = “Hömek” var adisoyadi = adi + soyadi document.writeln(adisoyadi) Bu kod örneği ile Javascript, Browser penceresi içindeki belgeye “adisoyadi” adlı değişkenin değerini (OsmanHomek) yazdıracaktır. Araya boşluk koymanın tekniğine ilerde değineceğiz! 4. İşlev (Function) Değişken: Javascript’in hayatî noktası fonksiyonlardır. Javascript’e fonksiyonlarla iş yaptırırız. Kimi fonksiyonu, Javascript’i tasarlayanlar bizim için tanımlamışlardır; bunlara metod denir. (Kimi metod, ne yapacaksa bizim hiç bir katkımızı beklemeden yapar; kimi metod mutlaka bizden bir katkı bekler.) Kimi fonksiyonları biz tanımlarız ve komutlarını biz veririz. Bunlara “Programlanan Fonksiyonlar” denir. Başlarda yazdığınız ve merhaba2.htm adıyla kaydettiğiniz dosyada biz “merhaba()” adlı bir fonksiyon oluşturduk; sonra bu fonksiyona bir otomatik fonksiyon olan alert() metodunu kullanmasını bildirdik; bu otomatik fonksiyona da görevini yaparken kullanmasını istediğimiz değeri verdik! 5. Nesne (Object) değişkenleri: window, document Bu tür değişkenlere değişken adını vermek bile gerekmez; çünkü bunlar Browser’ın nesneleridir. Fakat Javascript kodlarımızda bu nesneleri de değişken gibi kullanabiliriz. Bu sınıfa giren özel bir değişken ise değerini “null” (içi boş) kelimesiyle belirlediğiniz değişkenlerdir. Javascript, değişkenlerini bu beş sınıfa ayırmakla birlikte sizden değişkenlerinizini sınıflamanızı beklemez. Sınıflamanın önemi, daha sonra, programın ileri bir aşamasında bir değişkenin değeri ile yaptıracağınız işlemde ortaya çıkacaktır. Bir değişken, kendi sınıfının yapamayacağı bir işleme veya sorgulamaya tabi tutulursa, Javascript size pek de kibarca olmayan bir hata mesajı ile değişkeni doğru kullanmadığınızı hatırlatacaktır. Bununla birlikte bir fonksiyonda sayı olarak tanımlanmış ve doldurulmuş bir değişken, aynı fonksiyonda daha sonraki bir işlemde veya başka bir fonksiyonda alfanümerik değişken olarak tanımlanabilir ve doldurulabilir. Bu değişken sorgulandığında değerini, yetki alanı (scope) çerçevesinde bildirir. Değişkenlerin yetki alanı veya geçerli olduğu alan (scope), oluşturulmuş ve değeri belirlenmiş olduğu sahayı, yani kendisine atıfta bulunulduğu zaman bildireceği değerini ve bu değişkene nerelerden atıfta bulunulabileceğini gösterir. Şimdi, HTML dosyasının baş tarafında (HEAD etiketi içinde) bir değişkeni tanımladığınızı ve ona bir değer verdiğinizi düşünün. Daha sonra yazacağınız bütün fonksiyonlarda veya değerini belirleyebileceğiniz otomatik fonksiyonlarda (metod’larda) bu değişkeni bir daha tanımlamaya ve değerini belirlemeye gerek kalmadan kullanabilirsiniz; çünkü Javascript açısından bu değişken genel (global) değişken sayılır. Daha sonra ayrıntılı olarak göreceğimiz gibi, HTML’in gövde kısmında (BODY etiketi içinde) bir fonksiyon yazdığımızı ve bu fonksiyonun içinde bir değişken tanımladığımızı düşünün. Daha sonra yazacağınız bir fonksiyonda bu değişkeni kullanamazsınız; çünkü Javascript bir fonksiyonun içindeki değişkeni yerel (local) değişken sayar ve kendi yetki alanı (scope’u) dışında kullanmanıza izin vermez. Bir yerel değişken, ait olduğu fonksiyon çağrıldığı anda oluşturulur ve fonksiyonun icrası bittiği anda yok edilir. Dolayısıyla bir fonksiyon, başka bir fonksiyonun yerel değişkinini kullanmaya kalktığında “undefined” (tanımlanmamış) değişken hatasıyla karşılaşırsınız. Bir değişkeni bütün HTML sayfası boyunca kullanmayı düşünüyorsanız, bu değişkeni, HTML sayfasının başında içinde fonksiyon bulunmayan bir SCRIPT bölümünde tanımlamalı ve doldurmalısınız. İyi bir programlama tekniği, genel değişkenleri, açık-seçik tanımlamak ve bunu yorum satırıyla belirtmektir: <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <TITLE>Merhaba Dünya!</TITLE> <SCRIPT LANGUAGE="Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim // genel değişken tanımları var metin1 = "Merhaba Dünya!" var metin2 = "Vayy, merhaba canım! N’aber?" var metin3 = "Bu samimiyet nereden? Lütfen biraz ciddi olur musunuz?" // --> </SCRIPT> </HEAD> <P>BURAYA ÇEŞİTLİ AMAÇLARLA HTML KODLARI GİREBİLİR!! SONRA TEKRAR SIRA JAVASCRIPT'E GELEBİLİR</P> <SCRIPT LANGUAGE="Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim //bu fonksiyon uyarı kutusu açar function merhaba() { alert(metin1) } // --> </SCRIPT> </HEAD> <BODY> <B>Merhaba Dünya</B><br> <FORM> <INPUT TYPE="SUBMIT" NAME="dugme1" VALUE="TIKLAYIN!" onclick="merhaba()"> </FORM> </BODY> </HTML> Bu kodu da merhaba6.htm adıyla kaydedebilirsiniz. Daha sonra merhaba fonksiyonunda “alert(metin1)” satırındaki 1 rakamını 2 ve 3 diye değiştirirseniz, merhaba6.htm’in uyarı kutusunun içeriğini değiştirdiğini göreceksiniz. Şimdi, merhaba6’da merhaba() fonksiyonunu şöyle değiştirin ve şu eki yapın: function merhaba() { var metin1 = "Sana da merhaba!" alert(metin1) } function hello() { alert(metin1) } Sonra, aynı dosyada mevcut düğme oluşturan INPUT satırının altına şu satırı ekleyin; sayfanızda iki düğme görünecektir: <INPUT TYPE="SUBMIT" NAME="dugme2" VALUE="TIKLAYIN!" onclick="hello()"> Bu düğmelerden birincisi, merhaba() fonksiyonunu, ikincisi hello() fonksiyonunu çağıracak. Genel olarak tanımladığınız ve değer verdiğiniz metin1 değişkeninin değerini merhaba() fonksiyonunda değiştirdiniz; bu değişkenin yeni değeri “Sana da merhaba!” şeklini aldı. Bu metni, merhaba7.htm adıyla kaydedip, Browser’da açtığınızda ve birinci düğmeyi tıkladığınızda, uyarı kutusunun içeriğinin metin1 değişkeninin genel değerini değil yerel değerini içerdiğini göreceksiniz. Yani metin1’in değeri değişmiş oldu. Peki, ikinci düğmeyi tıklayın! metin1’in değeri değişmemiş gibi, uyarı kutusunun genel tanımlamadaki değeri kullandığını göreceksiniz. Oysa biraz önce, birinci düğmeyi tıkladığımızda yani merhaba() fonksiyonu çalıştığında metin1’in değeri değişmemiş miydi? Şimdi neden eski metin1’in eski değeri karşımıza çıkıyor? Bu alıştırmanın öğrettiği kural şöyle özetlenebilir: Bir genel değişken, bir fonksiyon içinde yerel olarak değiştirilebilir; ama onun genel değeri diğer fonksiyonlar için geçerli kalır. Javascript programlarınızı yazdığınız zaman genel değişkenleriniz beklediğiniz değeri vermiyorsa bu değeri bir fonksiyonun yerel olarak, sırf kendisi için, değiştirip değiştirmediğine bakmalısınız. Bu tür hatalardan kaçınmanın bir yolu, yerel değişkenlerinizle genel değişkenlerinize farklı isimler vermektir. Javascript, değişkenlerinizi isimlendirmede rakamla ve işaretle başlamamak dışında kural koymuyor; ama iyi programcılık tekniği, değişkenlere anlaşılır ve kullanıldığı yeni belli eden isimler vermektir. Örneğin, ”adi” şeklindeki bir değişken adı, çok değişkenli bir Javascript programında yanıltıcı olur. “musteri_adi” veya “musteriAdi” çok daha uygun olabilir. Ayrıca değeri “Evet” (=doğru, true) veya “Hayır” (=yanlış, false) olan Boolean değişkenlerin adlandırılmasında, örneğin, “doluMu,” “tamamMi,” “acikMi,” “bittiMi” gibi cevabı çağrıştıran değişken adları kullanabilirsiniz. Javascript, değişkenlerinizi isimlendirmede rakamla ve işaretle başlamamak dışında kural koymuyor; ama iyi programcılık tekniği, değişkenlere anlaşılır ve kullanıldığı yeni belli eden isimler vermektir. Örneğin, ”adi” şeklindeki bir değişken adı, çok değişkenli bir Javascript programında yanıltıcı olur. “musteri_adi” veya “musteriAdi” çok daha uygun olabilir. Ayrıca değeri “Evet” (=doğru, true) veya “Hayır” (=yanlış, false) olan Boolean değişkenlerin adlandırılmasında, örneğin, “doluMu,” “tamamMi,” “acikMi,” “bittiMi” gibi cevabı çağrıştıran değişken adları kullanabilirsiniz. Javascript’te İşlemler (Operator) Program yazmanın amacı, bilgisayara işlem yaptırtmaktır. Javascript de bu açıdan farklı değildir: bir değişkenin değerini alırsınız, bir işlemden geçirirsiniz; sonra ortaya çıkacak yeni değeri ya bildirirsiniz, ya da yeni bir işlemde kullanırsınız. Tabiî herşey bu kadar kolay olsa idi, herkes programcı olurdu. Herkes programcı olmadığına göre, söz gelimi “bir değişkeni almak” için önce değişkenin değerinin nereden ve nasıl elde edileceğini bulmanız gerekir. Ayrıca yukarıda öğrendik ki, Javascript programları Browser’ın pencere nesnesine veya penceresinde de görüntülediği belge nesnesinin bir unsuruna hitaebeder. Dolayısıyla hangi nesnenin ne gibi nitelikleri olduğunu öğrenmemiz gerekir ki, işleme tabi tuttuğumuz değerleri bu unsurların işine yarayacak şekle getirelim. Javascript, eline verdiğiniz değişkenin türüne ve değişkenin değerine göre dört tür işlem yapar. Şimdi bunları sırasıyla ele alalım: Atama (Assignment) İşlemleri: Javascript’te en sık yapacağınız işlem, bir değişkene bir değer atama işlemidir: “Adı” adlı değişkenin değeri “Hakkı” olsun! “Soyadı” adlı değişkenin değeri “Öcal” olsun, gibi. Ve tahmin ettiğiniz gibi bunu eşittir (=) işaretiyle yaparız: var adi = “Ahmet”, soyadi = “Arif” var siraNo = 123, sigortaNo = “A123-2345-234” Javascript, bir eşittir işaretiyle karşılaştığında, önce işaretin sağına bakar ve değeri okur; sonra işaretin soluna bakar ve bu adın, meşru bir değişkene ait olup olmadığını ve bu adla bilgisayarın belleğinde bir yer açıp açamayacağını belirler. Eğer işaretin solundaki isim, meşru, yani önceden tanımlanmış veya değeri belirlenmiş bir değişkene ait ise, o değişkenin bilgisayarın belleğindeki adresine işaretin sağındaki değeri yazar. Değişken ismi yeni bir meşru isme aitse, Javascript bu değişkeni “initalize” eder, yani hem yer açar, hem de içine değerini yazar. Değişken ismi kabul edilebilir nitelikte değilse, yani söz gelimi altı çizgi (_) dışında bir işaretle veya rakamla başlıyorsa, içinde boşluk varsa, veya yasaklı kelimelerden biri ise, Javascript hata mesajı verir. Bu noktada sık yapılan bir hata, başka bir programlama dilinden kalma alışkanlıkla değişkeni sağa, değeri sola yazmaktır: hakki = adi, gibi. Javascript bu durumda da hata mesajı verir; çünkü “hakki” değişkenine “adi” değerini atamak için, sayı olmayan bu alfanümerik değerin ya tek, ya da çift tırnak içine yazılması gerekir. Javascript’te bir değişkene değer atarken, bu değeri mevcut bir veya daha fazla değişkenden de alabilirsiniz: var i = j + k var indexNo = siraNo + kategoriNo var tutariTL = birimFiyatTL * adet Aritmetik İşlemleri: İşte lisede matematik dersinde kaytarmamış olduğunuza şükredeceğiniz noktaya geldik: Javascript (veya başka herhangi bir programlama dili) siz formülünü vermedikçe hiç bir hesabı yapamaz; ama dünyanın en çapraşık, en karmaşık formülünü de verseniz, sonucu (bilgisayarınızın hızı ile orantılı olarak) hesaplar. Tabiî, Javascript, dört temel işlemi yapabilir. toplama işlemini artı işaretiyle (+), çıkartma işlemini eksi işaretiyle (-), çarpma işlemini yıldız (asterisk, *) işaretiyle, ve bölme işlemini düz bölü işaretiyle (/) yaptırırsınız. Javascript, artı işaretini gördüğü zaman, işaretin hem sağına, hem de soluna aynı anda bakar ve bulduğu iki değeri, sayı ise toplar, alfanümerik ise sağdakinin soldakinin arkasına ekler: x = 3 + 4 Javascript, bu işlemin sonucu olarak x adlı değişkene 7 değerini atar. Fakat kimi zaman, bir değişkenin mevcut değerini (sıfır bile olsa) belirli bir miktarda arttırmak isteyebilirsiniz. Yani Javascript’e “x’in mevcut değerine 3 ekle!” demek isteyebilirsiniz. Bunu, “x = x + 3” diye ifade ederiz. Eğer arttırılacak miktar 1 ise, bunu daha kısa yazmak da mümkündür: ++x. Javascript çıkartma işleminde de aynı kuralları uygular: x = 3 - 4 x = x - 3 --x Değişkenleri 1 arttırma veya 1 eksiltmeye yarayan kısaltmanın üzerinde biraz duralım. İlerde bol bol örneklerini göreceğimiz gibi, Javascript programlarınızda bazı değişkenleri sayaç olarak kullanmak isteyebilirsiniz. Bir işin sonuna geldiğimizi bilebilmek için, diyelim ki 12 kişilik bir adres listesini Javascript’e okutup, sayfaya bir tablo çizdiriyorsak, Javascript’e listenin sona geldiğini belirtebilmek için sayaç rakamı 12 veya 0 oldu ise durmasını emretmek zorundasınız. Bu durumda sayaç olarak kullandığınız değişkenin değerini, her adres okunduğunda 1 arttırmak veya 1 eksiltmek, en kestirme yoldur. Diyelim ki, x’in orijinal değeri 12. Javascript x-- veya --x işlemini gördüğü anda, 12’den 1 çıkartacak ve x’in yeni değeri olarak 11’i atayacaktır. Aynı şekilde ilk değer sıfır ise, x++ veya ++x işlemini gördüğü anda x’in yeni değerini 1 yapacaktır. Toplama ve çıkartma işlemlerinde yapabileceğiniz başka bir kısaltma ise şöyle yazılır: x = x + y işlemini kısaltmak için x += y x = x - y işlemini kısaltmak için x -= y Bu bölümü bitirmeden önce, bir sayının değerini negatif yapmaktan da söz edelim. Bir değişkene negatif değer atamak için, sayının önüne eksi işareti koymanız yeter: x = -5 gibi. Bir değişkene başka bir değişkenin değerini negatif olarak atamak istiyorsanız, x = -y gibi yazabilirsiniz. y değişkeninin değeri zaten negatif ise, x’e atanan değer pozitif olur. Belki belirtmek bile gerekmez ama, Javascript, bölü işaretinin solundaki sayıyı, sağındaki sayıya böler; yıldız (asterisk) işaretinin sağındaki ve solundaki sayıları birbiri ile çarpar. Javascript, alfanümerik değerlerle çıkartma, çarpma ve bölme işlemleri yapmaz; sonucun yerine “NaN” (Not a Number, Sayı Değil) yazar. Karşılaştırma İşlemleri: Javascript dahil, bütün bilgisayar programlarının ortak özelliği, programın bir noktada karar vermesidir: “Filanca değişken şu değerde ise, falanca değişken ile şunu yap; o değerde değil de, bu değerde ise bunu yap!” gibi. Bu tür komutlarda Javascript, sözünü ettiğiniz değişkenin değerini bulup, onu verdiğiniz bir başka ölçütle karşılaştıracak ve varacağı sonuca göre emrettiğiniz işi yapacaktır. Dolayısıyla Javascript’te bir takım karşılaştırma işlemlerine ihtiyacınız var demektir. Javascript’in karşılaştırma operatörleri genellikle “if” (eğer..ise) ifadesiyle birlikte kullanılır; ve bu soruyu soran satıra “true” (doğru) veya “false” (yanlış) sonucunu verir. Önce, bu işlemleri yaptırtan operatörleri ve işlevlerini sıralayalım: == Eşit operatörü. İşaretin sağında ve solundaki değerlerin eşit olması halinde true (doğru) sonucunu gönderir. != Eşit değil operatörü. İşaretin sağında ve solundaki değerlerin eşit olmaması halinde true (doğru) sonucunu gönderir. > Büyüktür operatörü. Soldaki değer, dağdaki değerden büyük ise true (doğru) sonucunu gönderir. < Küçüktür operatörü. Soldaki değer, dağdaki değerden küçük ise true (doğru) sonucunu gönderir. >= Büyük veya eşit operatörü. Soldaki değer, dağdaki değerden büyük veya bu değere eşit ise true (doğru) sonucunu gönderir. <= Küçük veya eşit operatörü. Soldaki değer, dağdaki değerden küçük veya eşit ise true (doğru) sonucunu gönderir. Daha sonra örneklerini göreceğiz; ve karşılaştırma işleminden sonra ne olduğunu, Javascript’in nasıl bir yol izlediğini ele alacağız. Şimdi sadece böyle bir karşılaştırma işleminde nasıl sonuç verdiğini görmekle yönetinelim. Düz yazı programınızda şu HTML kodunu yazın ve karsilastirma1.htm adıyla kaydedin: <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <TITLE>Javascript'te Mukayese</TITLE> <SCRIPT LANGUAGE="Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim // degisken tanimlari var x, y, z x = 7 y = 7 z = 13 // --> </SCRIPT> </HEAD> <BODY> <PRE> <SCRIPT LANGUAGE="Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim //mukayese sonuclarını gösterelim document.writeln("x = " + x) document.writeln("y = " + y) document.writeln("z = " + z) document.write("x değişkeni y değişkenine eşit mi, (x==y)? ") document.writeln(x==y) document.write("y değişkeni z değişkenine eşit mi, (y==z)? ") document.writeln(y==z) // --> </SCRIPT> </PRE> </BODY> </HTML> Bu kod bir tarafta açıkken, oluşturduğunuz dosyayı Browser’da açın ve sonuca bakın; sonra kodunuzda x, y ve z değişkenlerinin değerini değiştirerek, Browser’a sayfayı yenilettirin; sonucun nasıl değiştiğini inceleyin. Javascript’in sonuç true (doğru) ise nasıl ilerlediğini, sonuç false (yanlış) ise nasıl ilerlediğini daha sonra ayrıntılı olarak göreceğiz. Fakat derhal öğrenmeniz gereken kuralı burada belirtelim: Javascript, karşılaştırma sonucu doğru ise, karşılaştırma komutundan sonraki ilk emri (veya emir grubunu), değilse bir sonraki emri (veya emir grubunu) icra eder. Bunun ayrıntılarını da ele alacağız. Şimdilik sadece bu kuralı bir kenara yazın! Bu konuyu bitirmeden, bir de ne ile neyi karşılaştırabileceğinizden söz edelim. Javascript 1.0’de elmalarla (sayılarla) armutları (alfanümerik değişkenleri) karşılaştırabilir ve doğru sonucunu verebilirdi. Yani, Javascript 1.0 açısından 7 ile “7” eşitti; Javascript önce karşılaştırılan değişkeni sayıya çevirip çeviremeyeceğine bakar; çevirebiliyorsa, karşılaştırmayı yapardı. Daha sonraki sürümlerinde durum değişti; Javascript’i tasarlayanlar bu çevirme işlemini programcıya bıraktılar; dolayısıyla Javascript elmalarla armutları ayırteder oldu! Alfanümerik İşlemleri: Javascript’in alfanümerik değişkenlerin değerleri ile sadece toplama işlemi yaptığını söylemiştik. Bu durumda buna toplama değil birleştirme, ekleme işlemi denir. Aşağıdaki kodu düz yazı programınızla oluşturup, birlestir.htm adıyla kaydederseniz ve Browser’ınızda incelelerseniz, Javascript’in alfanümerik değerleri nasıl birleştirdiğini görmüş olursunuz: <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <TITLE>Javascript'te Ekleme</TITLE> </HEAD> <BODY> <PRE> <SCRIPT LANGUAGE="Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim //değiskenlerimizi tanımlayalım var a, b, c, d a = "www" b = "pcworld" c = "com" d = "tr" //sonuçlarımızı görüntüleyelim document.writeln("a değişkeninin değeri: \""+a+"\".") document.writeln("b değişkeninin değeri: \""+b+"\".") document.writeln("c değişkeninin değeri: \""+c+"\".") document.writeln("d değişkeninin değeri: \""+d+"\".") document.writeln("\nŞimdi bunları birleştirelim:\n") document.write("a + b = ") document.write(a + b) document.write("\nAralarına nokta koyalım: ") document.write(a + "." + b) document.write("\nŞimdi c değişkenini, noktasıyla birlikte ekleyelim: ") document.write(a + "." + b + "." + c) document.write("\nŞimdi de d değişkenini, noktasıyla birlikte ekleyelim: ") document.write(a + "." + b + "." + c + "." + d) document.write("\nİşte a + b + c + d'nin sonucu: ") document.write(a + "." + b + "." + c + "." + d) // --> </SCRIPT> </PRE> </BODY> </HTML> Bu dosyada, iki tür yazdırma komutu kullandığımıza dikkat ediyor musunuz: “document.writeln()” ve “document.write()”. Bu iki komut arasındaki farkı bulabilir misiniz? (İpucu: “document.write()” yönteminde satırbaşı yaptırtmak için “\n” kullanıyoruz!) Javascript, alfanümerik değerlere diğer aritmetik işlemleri yapamaz. Buna karşılık, Javascript sayılarla yaptığı bütün karşılaştırma işlemlerini alfanümerik değişkenlerle de yapar ve doğru veya yanlış sonucunu bildirir. Daha önce kaydettiğiniz karsilastirma1.htm dosyasını düz yazı programında açın ve değişkenleri tanımladığınız bölümünü şöyle değiştirin: x = "Ali" y = "Ali" z = "Veli" Sonra bu dosyayı, karsilaştirma2.htm adıyla kaydedip, Browser’da inceleyin; değişkenlerin değerini değiştirip, yeniden inceleyin ve ne sonuç aldığınıza bakın. Şartlı İşlemler: Javascript’te karşılaştırma yaparken şartlı (..ise ..yap!) işlemler de yaptırabilirsiniz. Şartlı işlemlerde ? (soru işareti) ve : (iki nokta üstüste) işaretlerini kullanırsınız. Karsilastirma2.htm dosyasının bütün “document.write..” kodlarını silin ve yerine şu iki satırı yazarak, karsilastirma3.htm adıyla kaydedin. sonucMsg = (y==x)?"y degiskeni x degiskenine esit!" : "y degiskeni x degiskenine esit degil!" alert(sonucMsg) Kod dosyası düz yazı programında açıkken, karsilastirma3.htm’i Browser’da açın. Uyarı kutusunda, iki değişkenin eşit olması şarti halinde görüntülenmesini istediğiniz mesajı göreceksiniz. Dosyada değişkenlerin değerini değiştirerek, sonucu inceleyin. Bunu sağlayan şartlı işlem komutu üç bölümden oluşuyor: şartın doğru olup olmadığını sorguladığınız, soru işaretine kadar olan karşılaştırma bölümü; iki nokta üstüste işaretine kadar olan şart doğru ise uygulanacak bölüm, sonra satır sonuna kadar olan şart yanlış ise uygulanacak bölüm. Yukarıda, “Javascript bir karşılaştırma yaptıktan sonra karşılaştırma sonucu doğru ise, karşılaştırma işleminden sonraki ilk komutu icra eder” demiştik. Burada da, x değişkeni ile y değişkeni aynı olduğu zaman, soru işaretiyle biten karşılaştırma işleminden hemen sonraki ilk komut (veya ifade) seçiliyor; değişkenler aynı olmadığı taktirde, iki nokta üstüste işaretinden sonra gelen komut (veya ifade) seçiliyor. İşlemlerde Sıra: Javascript’te işlemler yukarıdan aşağı ve soldan sağa yapılır, ama aritmetik işlemlerde bu kuralın bazı istisnaları vardır. Javascript kodlarınızda beklediğiniz sonuçları alamıyorsanız, önce işlemlerinizi işlem sırasına uygun yazıp yazmadığınızı kontrol edin. Javascript’te işlemlerin genel sırası şöyledir: Atama işlemleri, şartlı işlemler, mantıksal ve/veya/değil işlemleri, karşılaştırma işlemleri, aritmetik işlemler, fonksiyonlar. Javascript’te aritmetik işlemler ilke olarak soldan sağa doğru yapılır. Örneğin x = a * b + c denklemi çözülürken, önce a ile b çarpılır, elde edilecek sayıya c eklenir. Fakat bir denklemde parantez içine alınmış ifade varsa, Javascript önce parantezin içini halleder. Örneğin x = a * (b + c) denklemin önce b ile c toplanır, elde edilecek sayı a ile çarpılır. Eğer bir işlemde Javascript aritmetik işlemleri sıraya sokmak zorunda kalırsa, toplama, çıkartma, çarpma ve bölme sırasıyla yapar. İşlemlerin sırası konusunda kuşkunuz varsa, mümkün olduğu kadar çok parantez kullanın. Program Akış Denetimi Javascript veya bir başka programlama dili ile yazacağınız programda, zaman zaman programın akışını, programa bırakmanız gerekir. Programcı olarak siz, programın izleyeceği alternatif yolları belirlersiniz; fakat bu yollardan hangisini izleyeceğine, sizin koyduğunuz şartları değerlendirerek program kendisi karar verir. Programcılığın gerçek anlamda zevki de bu noktada başlar. Şimdi Javascript’in programın akışını kontrolde kullanacağınız unsurlarını tanımaya başlayalım. Aşağıda yazacağımız iki Javascript kodunda Browser’a, ziyaretçinin ekranındaki bir form unsurunun içini doldurtma tekniğini kullanacağız. Henüz ele almadığımız bu tekniğin ayrıntılarını FORM nesnesinin özelliklerine değinirken ele alacağız.
__________________
...::: Lord Of The HeLL :::... |
||
|
|
|
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | son Mesaj |
| Php Ye giriş Konu: 1 | OttoMan | Php | 2 | 06-03-08 20:04 |
| Php ye giriş Konu: 4 | OttoMan | Php | 0 | 04-04-08 21:13 |
| Php ye giriş Konu: 3 | OttoMan | Php | 0 | 04-04-08 21:13 |
| Php ye giriş Konu: 2 | OttoMan | Php | 0 | 04-04-08 21:12 |
| Java Script Nedir ? Ne İşe yarar ? | Zebani | Js | 0 | 12-29-07 01:15 |
mirc
mırc
çet
cet
sohbet
chat
canlı tv