JavaScript Nedir?
Yazım Kuralları
Değişkenler
İşlemler
Akış Denetimi
Döngü Denetimi
Diziler
Fonksiyonlar
Pencere Komutları
Metin Komutları
Zaman Komutları
Matematik Komutları
Tarayıcı Komutları
Olay
Nesneler
Javascript ve DHTML
Örnek Uygulamalar

JAVASCRIPT'te İŞLEMLER

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:

1.Atama İş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.

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

 
2.Aritmetik İşlemler

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,
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. 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 + 5 işlemini kısaltmak için x += 5
x = x - 5 işlemini kısaltmak için x -= 5
x = x + y işlemini kısaltmak için x += y
x = x - y işlemini kısaltmak için x -= y


NOT : 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 (string) değerlerle çıkartma, çarpma ve bölme işlemleri yapmaz; sonucun yerine “NaN” (Not a Number, Sayı Değil) yazar.

 

<body>
<div id="apDiv1">
<script language="Javascript">
<!--

var x=5
var y=4
x=x+y


document.writeln(x)

-->
</script>

</div>
</body>

 

<body>
<div id="apDiv1">
<script language="Javascript">
<!--

var x=5
var y=4
x+=y
y++


document.writeln(x)
document.writeln(y)

-->
</script>

</div>
</body>

 
3.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.

<HTML>
<HEAD>

<SCRIPT LANGUAGE="Javascript">

var x, y, z
x = 7
y = 7
z = 13

</SCRIPT>


</HEAD>

<BODY>

<PRE>
<SCRIPT LANGUAGE="Javascript1.2">

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>


Burada <pre> etiketi boşlukların gözönüne alınması için konulmuştur. document.writeln(x==y) ifadesi basit bir karşılaştırma yaparak, x ve y değişkenlerinin içeriği birbirine eşitse ekranda "true", değilse "false" yazdırır. Karşışaltırma doğru ise veya yanlış olduğunda yapılacak işlemler için daha sonra kontrol komutları kullanılacaktır .( if vs)
 
4. AlfaNümerik (String ) İş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.

<BODY>

<PRE>

<SCRIPT LANGUAGE="Javascript">
<!--
//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+b+c+d)
document.writeln(a + "." + b + "." + c + "." + d)

document.write(a+b+c+d)
document.writeln(a + "." + b + "." + c + "." + d)

document.write(a+b+c+d+" ")
document.writeln(a + "." + b + "." + c + "." + d)

document.write("\n"+a+b+c+d+"\n")
document.writeln(a + "." + b + "." + c + "." + d)


-->

</SCRIPT>
</PRE>

</BODY>


NOT: document.writeln yazma işleminden sonra satır başı yaptırırken, document.write satır başı yaptırmaz aynı satırdan devam eder. Ancak \n parametresi kullanılarak alt satıra geçiş sağlanabilir.

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.

<SCRIPT LANGUAGE="Javascript">
<!--
var a, b, c, d
a = "www"
b = "www"
c = "com"

document.writeln(a==b)
document.writeln(a==c)

-->

</SCRIPT>

 
5.Ş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.

<SCRIPT LANGUAGE="Javascript">
<!--
var a, b, c, d
a = "www"
b = "www"
c = "com"

sonucMsg = (a==b)? "a degiskeni b degiskenine esit!" : "a degiskeni b degiskenine esit degil!"

alert(sonucMsg)

-->

</SCRIPT>

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.

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. Burada da, a değişkeni ile b 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.

6.Mantıksal İşlemler
 

Javascript, karşılaştırma işlemini Boolean (.. ve .. doğru ise ... yap!) mantıksal işlemlerini kullanarak da yapabilir. Burada, Boolean mantığından kısaca söz edelim.

Şimdi, bir baba, kızı Ayşe ile oğlu Ali’ye diyor ki, “İkiniz de sınıfını geçerseniz, bu yıl sizi Antalya’ya deniz kenarında bir ay geçirmek üzere teyzenizin evine göndereceğiz!” Ali sınıfını geçer, Ayşe geçemezse iki çocuk da teyzelerine gidemeyecekler; Ali sınıfını geçer, Ayşe de geçerse, iki çocuk da Antalya’ya gidecek; Ali de, Ayşe de sınıflarını geçemezse, iki çocuk da yaz tatilini oturdukları yerde geçirecekler.

Javascript’in Boolean mantığını sorgulama işaretleri şunlardır:

&&            Mantıksal Ve: iki koşul da doğru ise
||                 Mantıksal Veya: ya birinci, ya da ikinci koşul doğru. Herhangi biri doğru ise..
                Mantıksal Değil: Tek koşula uygulanır; koşul doğru ise sonuç false (yanlış), koşul yanlış ise sonuç true (doğru) olur.


Bu mantığı, şimdi Boolean ifadesi haline getirelim:

Ali=geçti && Ayşe=geçti : çocukların ikisi de tatile gidiyor.
Ali=geçti || Ayşe=geçti : çocukların ikisi de tatile gidemiyor.
!(Ali=geçti) : çocukların ikisi de tatile gidemiyor.
!(Ayşe=geçti) : çocukların ikisi de tatile gidemiyor.

 
İŞLEMLERDE SIRA
 

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,matematik kurallarıyla sıralama yapar. İşlemlerin sırası konusunda kuşkunuz varsa, mümkün olduğu kadar çok parantez kullanın.