İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

JAVASCRİPT'te İŞLEMLER

Javascript'te İşlemle

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 İŞLEMLERİ

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

ARİTMETİK İŞLEMLER

İş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

u 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ŞILAŞTIRMA İŞLEMLERİ

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 yetinelim. Düz yazı programınızda şu HTML kodunu yazın ve karsilastirma1.htm adıyla kaydedin:

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <HTML>
  2 <HEAD>
  3 	<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
  4 	<TITLE>Javascript'te Mukayese</TITLE>
  5 	<SCRIPT LANGUAGE="Javascript1.2">
  6 	<!-- Javascript kodunu eski surum Browserlardan saklayalim
  7 	// degisken tanimlari
  8 		var x, y, z
  9 		x = 
 10 		y = 7
 11 		z = 13
 12 	// -->
 13 	</SCRIPT>
 14 </HEAD>
 15 <BODY>
 16 <PRE>
 17 	<SCRIPT LANGUAGE="Javascript1.2">
 18 	<!-- Javascript kodunu eski sürüm Browserlardan saklayalim
 19 		//mukayese sonuclarini gösterelim
 20 		document.writeln("x = " + x)
 21 		document.writeln("y = " + y)
 22 		document.writeln("z = " + z)
 23 		document.write("x degiskeni y degiskenine esit mi, (x==y)? ")
 24 		document.writeln(x==y)
 25 		document.write("y degiskeni z degiskenine esit mi, (y==z)? ")
 26 		document.writeln(y==z)
 27 	// -->
 28 </SCRIPT>
 29 </PRE>
 30 </BODY>
 31 </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ÜMERİK İŞLEMLERİ

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:

Göster Gizle Kopar Satır Gizle Satır Göster
  1 <HTML>
  2 <HEAD>
  3 	<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
  4 	<TITLE>Javascript'te Ekleme</TITLE>
  5 </HEAD>
  6 <BODY
  7 <PRE>
  8 	<SCRIPT LANGUAGE="Javascript1.2">
  9 	<!-- Javascript kodunu eski surum Browserlardan saklayalim
 10 	//degiskenlerimizi tanimlayalim
 11 		var a, b, c, d
 12 		a = "www"
 13 		b = "pcworld"
 14 		c = "com"
 15 		d = "tr"
 16 	//sonuclarimizi göruntuleyelim
 17 		document.writeln("a degiskeninin degeri: \""+a+"\".")
 18 		document.writeln("b degiskeninin degeri: \""+b+"\".")
 19 		document.writeln("c degiskeninin degeri: \""+c+"\".")
 20 		document.writeln("d degiskeninin degeri: \""+d+"\".")
 21 		document.writeln("\nSimdi bunlari birlestirelim:\n")
 22 		document.write("a + b = ")
 23 		document.write(a + b)
 24 		document.write("\nAralarina nokta koyalim: ")
 25 		document.write(a + "." + b)
 26 		document.write("\nSimdi c degiskenini, noktasiyla birlikte ekleyelim: ")
 27 		document.write(a + "." + b + "." + c)
 28 		document.write("\nSimdi de d degiskenini, noktasiyla birlikte ekleyelim: ")
 29 		document.write(a + "." + b + "." + c + "." + d)
 30 		document.write("\nIste a + b + c + d'nin sonucu: ")
 31 		document.write(a + "." + b + "." + c + "." + d)
 32 	// -->
 33 	</SCRIPT>
 34 </PRE>
 35 </BODY>
 36 </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.

ŞARTLI İŞ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.

MANTIKSAL İŞ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:

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

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır