javascript işlemler (operatörler)

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.
Tabiki
elbette bu kadar  kolay değil, ancak öğrenilmeyecek işte değil.
bir değişkeni almak için önce değişkenin değerinin nereden ve nasıl elde edileceğini bulmanız gerekir.
bir önceki yazıma bakarsanız  , 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 “sadık” olsun! “Soyadı” adlı değişkenin değeri “özdoğan” olsun, gibi. Ve tahmin ettiğiniz gibi bunu eşittir (=) işaretiyle yaparız:
var adi = “neşet”, soyadi = “ertaş”
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: sadik = adi, gibi. Javascript bu durumda da hata mesajı verir;
çünkü “sadik” 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ı gerekmektedir.
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
Bu şekilde kullanılması gerekmektedir.
Bir diğer operatörlere geçebiliriz artık.
Aritmetik İş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.
Tabiki, 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 yetinelim.
Bir metin editörü programı kullanarak şu HTML kodunu yazın ve karsilastirma1.html 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!
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 metin editöründe  yazıp, birlestir.html adıyla kaydederseniz ve Browser’ınızda incelerseniz, 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.html dosyasını metin editöründe 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ı, karsilastirma2.html 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.html dosyasının bütün “document.write..” kodlarını silin ve yerine şu iki satırı yazarak, karsilastirma3.html adıyla kaydedin.
sonucMsg = (y==x)?”y degiskeni x degiskenine esit!” : “y degiskeni x degiskenine esit degil!”
alert(sonucMsg)
Kod dosyası metin editöründe açıkken, karsilastirma3.html’i Browser’da açın.
Uyarı kutusunda, iki değişkenin eşit olması şartı 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.
Java script işlem sıralaması
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.
Javascript işlemleri konusunda yapılması gereken tüm bilgileri burada aktarmaya çalıştım sizlere.
Soru ve sorunlarınızı yorum olarak bana iletebilirsiniz.
İyi bloglamalar herkese.

Bir önceki yazımız olan javascript değişkenler başlıklı makalemizde javascript değişken kuralları, javascript değişken tanımlama ve javascript değişkenleri hakkında bilgiler verilmektedir.

Paylaş

YORUM YAZIN


*

code