Anasayfa > Programlama > Javascript / DHTML / Ajax > JavaScript İfadeleri ve Operatörler - 1
Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar

JavaScript İfadeleri ve Operatörler - 1




Merhaba arkadaşlar, yaz mevsiminin sıcak soluğunu iyiden iyiye hissetmeye başladığımız şu günlerde çoğu insan tatil hayallerine dalmışken biz hız kesmeden JavaScript öğrenmeye devam ediyoruz. Yeni konumuz ifadeler ve JavaScript operatörleri; bu konuyu arkamızda bıraktığımızda JavaScript dünyasında başladığımız keşfe yeni bir boyut kazandıracağız.

Bir JavaScript ifadesi herhangi bir geçerli literal serisinden, değişkenlerden ve operatörlerden oluşur; tek bir değer üretir ve ürettiği değer bir sayı, bir karakter dizgisi(string) veya lojik(logical - mantıksal) değer olabilir.

Kavramsal olarak iki ifade türü vardır : İlk ifade türünde bir değişkene değer atanır, ikincisinde ise sadece bir değer üretilir. Örneğin x = 13 ifadesinde bir atama operatörü(=) kullanılmış, x değişkenine 13 değeri aktarılmıştır. İfademiz 6 + 7 şeklinde olsaydı yine 13 değerini elde edecektik, ancak böyle bir ifadede herhangi bir atama işlemine yer verilmez.

JavaScript aşağıdaki ifade türlerine sahiptir :

  • Aritmetik İfadeler : Elde edilen değer bir sayıdır, örneğin 1976

  • String İfadeler : Elde edilen değer bir karakter dizgisidir, örneğin "fixman"

  • Mantıksal İfadeler : Elde edilen değer doğru(true) veya yanlış(false)tır.

  • Nesnesel İfadeler : Elde edilen değer bir nesnedir.

Operatörler
JavaScript'te atama(assignment), karşılaştırma(comparison), aritmetik(arithmetic), bit düzeyinde(bitwise), mantıksal(logical), string ve özel(special) olmak üzere yedi operatör sınıfı vardır; ikili(binary) ve birli(unary) türlerin her ikisi de desteklenir.

Bir ikili operatör iki işlemciye gereksinim duyar; bu işlemcilerden biri operatörden önce, diğeri operatörden sonra kullanılır :

işlemci1 operatör işlemci2 // Örneğin, 6 + 7 veya x + y

Birli operatörlerde ise bir işlemci ve bir operatör bulunur. İşlemci operatörden önce veya operatörden sonra yazılabilir :

işlemci operatör // Örneğin, x++ ifadesinde x değişkeninin değerini 1 arttırılmıştır.

veya

operatör işlemci // Örneğin, --y ifadesinde y değişkeninin değeri 1 azaltılmıştır.

Ek olarak JavaScript, koşullu operatör dediğimiz bir üçlü(ternary) operatöre sahiptir. Üçlü operatörlerde üç tane işlemci bulunmalıdır.

Atama Operatörleri (Assignment Operators)
Bir atama operatörü, sağında bulunan işlemcinin değerini solundaki işlemciye tahsis eder. Eşit(=) işareti temel atama operatörüdür. x = y ifadesinde, eşit operatörünün sağında bulunan y değişkeninin değeri eşit operatörünün solunda bulunan x değişkenine tahsis edilmektedir.

Eşit operatörü birleşik atama işlemlerinde de kullanılır. Örneğin x = x + y gibi bir ifadede x, kendi değeriyle y değerinin toplamına eşit olduğundan ifadeyi x += y şeklinde kısaltabiliriz. JavaScript, birleşik atama özelliğini C dilinden almıştır. Bu özellik "+" gibi çok kullanılan aritmetik işlem operatörlerinin yanı sıra farklı türdeki bir çok operatör üzerinde de uygulanabilmektedir.

Aşağıda birleşik atama özelliğini destekleyen tüm operatörlerin bir listesini bulacaksınız; bu listedeki operatörleri yeri geldikçe açıklamaya devam edeceğiz.

Birleşik atama  Anlamı
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y
x <<= y x = x << y
x >>= y x = x >> y
x >>>= y x = x >>> y
x &= y x = x & y
x ^= y x = x ^ y
x |= y x = x | y

Karşılaştırma Operatörleri (Comparison Operators)
Bir karşılaştırma operatörü, sağında bulunan işlemciyle solunda bulunan işlemciyi belirli ölçütlere göre karşılaştırarak, karşılaştırma sonucunun true(doğru) olup olmamasına göre lojik(mantıksal) bir değer üretir. Karşılaştırma işleminde kullanılan işlemciler sayısal, string, mantıksal veya nesnesel değerlere sahip olabilirler. Stringler Unicode değerleri ile sözlükteki sıralamalarına göre karşılaştırılırlar. Aşağıdaki listede JavaScript dilindeki tüm karşılaştırma operatörleri açıklanmıştır.

Operatör Açıklaması
Equal / Eşit (==) İşlemciler birbirine eşitse true(doğru) değer üretir. Karşılaştırma işleminde kullanılan işlemciler aynı türde değilse, JavaScript karşılaştırma için işlemcileri uygun bir tipe dönüştürür.

Not equal / Eşit değil (!=) İşlemciler birbirine eşit değilse true(doğru) değer üretir. Karşılaştırma işleminde kullanılan işlemciler aynı türde değilse, JavaScript karşılaştırma için işlemcileri uygun bir tipe dönüştürür.

Strict equal / Kesin eşit (===) İşlemciler birbirine eşitse ve aynı türdelerse true(doğru) değer üretir.

Strict not equal / Kesin eşit değil(!===) İşlemciler birbirine eşit değilse ve/veya aynı türde değillerse true(doğru) değer üretir.

Greater than / Büyük (>) Solundaki işlemci sağındaki işlemciden büyükse true(doğru) değer üretir.

Greater than or equal / Büyük veya eşit (>=) Solundaki işlemci sağındaki işlemciden büyükse veya solundaki işlemci sağındaki işlemciye eşitse true(doğru) değer üretir.

Less than / Küçük (<) Solundaki işlemci sağındaki işlemciden küçükse true(doğru) değer üretir.

Less than or equal / Küçük veya eşit (<=) Solundaki işlemci sağındaki işlemciden küçükse veya solundaki işlemci sağındaki işlemciye eşitse true(doğru) değer üretir.

Şimdi karşılaştırma operatörlerini daha iyi kavrayabilmek için aşağıdaki script bloğunu inceleyelim. Yazı dizimizin ilerleyen bölümlerinde bu script bloğunda yer verilen "if-else" ifadelerine ayrıntılı olarak değineceğiz. Şimdilik bu ifadelerin belirli koşulların yerine getirilip getirilmediğini sorgulamak ve bazı komutların bu şartlı sorgu sonucunda elde edilecek değere göre icra edilmesini sağlamak amacıyla kullanıldığını bilmeniz yeterli.


<script language="JavaScript1.2">
<!--

  var GecerNot    = 45,
      OrtaNot     = 55,
      IyiNot      = 70,
      PekiyiNot   = 85,
      EnYuksekNot = 100;

  var yaziylaNot = "";

  function notHesapla(sayiylaNot){

	if(sayiylaNot < GecerNot)
		yaziylaNot = "Zayif";

	else if(sayiylaNot >= GecerNot && sayiylaNot < OrtaNot)
		yaziylaNot = "Geçer";

	else if(sayiylaNot >= OrtaNot && sayiylaNot < IyiNot)
		yaziylaNot = "Orta";

	else if(sayiylaNot >= IyiNot && sayiylaNot < PekiyiNot)
		yaziylaNot = "İyi";

	else if(sayiylaNot >= PekiyiNot && sayiylaNot < EnYuksekNot)
		yaziylaNot = "Pekiyi";

	else
		yaziylaNot = "Yıldızlı pekiyi";

	alert("Öğrencinin bu dersten aldığı not : " + yaziylaNot);

  }

-->
</script>

 

Script bloğumuzun ilk satırında "var" anahtar sözcüğü kullanılarak beş tane değişken tanımı yapıldığını görüyoruz. Bu değişkenler aralarına virgül konularak tanımlandıklarından dolayı her değişken belirtecinden önce "var" kullanmaya gerek kalmamıştır.

İkinci satırda "yaziylaNot" adında başka bir değişken tanımlanmıştır. Bu değişkene ilk aşamada herhangi bir değer verilmemesine rağmen eşitliğin sağında bulunan çift tırnaklar sayesinde değişkenin string değer alacağını anlıyoruz. Böyle bir kullanım şekli zorunlu olmasa da kod bloğunun yorumlanmasını kolaylaştırdığı için yararlı bir yazım alışkanlığıdır.

Genel değişken tanımlarının hemen ardından "notHesapla" adında bir fonksiyonun başlıyor; fonksiyonun tek bir parametresi var ve bu fonksiyona gönderilen değerler her seferinde "sayiylaNot" adındaki yerel değişkene aktarılıyor.

notHesapla fonksiyonun ilk ifadesinde, kullanılan operatörden anlayacağınız gibi bir karşılaştırma işlemi gerçekleştiriliyor :

if(sayiylaNot < GecerNot)

"sayiylaNot" değişken belirtecinin işaret ettiği değerin "GecerNot" değişkenine depolanamış olan değerden küçük olup olmadığını soruyor ve eğer küçükse bir alt satırdaki atama işleminin gerçekleştirilmesini sağlıyoruz. İki değer arasındaki karşılaştırma sonucunda "if" ifadesi bizim için true(doğru) veya false(yanlış) değerini üretiyor. Eğer "sayiylaNot" değişkenine aktarılmış olan değer "GecerNot" değişken değerinden küçük değil, yani if şartının sonucu false ise programın icrası bir sonraki şart ifadesine dallanıyor :

else if(sayiylaNot >= GecerNot && sayiylaNot < OrtaNot)

Bu ifadedeki sorgu iki şarta bağlı olarak gerçekleştirilmekte. Eğer sayiylaNot değişken belirtecinin işaret ettiği değer GecerNot değişken değerinden büyükse veya eşitse ve OrtaNot değişken değerinden küçükse true değeri üretiliyor ve bu birleşik şart ifadesinin doğruluğuna bağlı olan atama işlemi gerçekleştiriliyor :

yaziylaNot = "Geçer";

Eğer birleşik şart ifadesinde belirtilen karşılaştırma işlemleri false değeri üretiyorsa script yine bir sonraki if ifadesine atlıyor. Bütün sorgular false değerini verirse, yani sayiylaNot değişkenini kullanarak yaptığımız karşılaştırma işlemlerinde küçük, büyük veya eşit olma durumlarını sorguladığımız değer, belirlediğimiz ölçütlerin dışına çıkarsa son bir else ifadesi icra ediliyor :

else
	yaziylaNot = "Yıldızlı pekiyi";

Örnek scriptimizde notu 100 olan öğrencinin derecesi bu sorgu sonucunda elde edilmekte. Son olarak "&&" operatörünün "ve" anlamına geldiğini ekleyelim; programın belli bir yerindeki komut veya komutların icrası birden fazla karşılaştırma sonucunun aynı anda true değer üretmesine bağlıysa, bütün karşılaştırma işlemlerini bu operatörle birleştiriyoruz. Örneğin;

    
if(KullaniciAdi == "Sahin" && Parola == "cevizkabugu" && Email == "webmaster@ceviz.net")
	alert("Hoşgeldin, sefalar getirdin " + KullaniciAdi);
else
	alert("Sen de kimsin, ne işin var burada?");

Şart ifadesinde üç karşılaştırma işlemi aynı anda true değerini verirse belirlenen şart sağlanmış
oluyor ve dokunaklı bir karşılama mesajı görüntüleniyor; karşılaştırmalardan en az biri
yanlışlanırsa(false), sözgelimi "KullaniciAdi" değişken belirtecinin işaret ettiği değer "Şahin"
stringine değil de "fixman" stringine eşit olursa görüntülenecek mesajın dili biraz kabalaşıyor farkettiğiniz gibi :)



Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.

Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
Eklenme tarihi: 8-9-2006

Bu Makaleye Verilen Puan:    Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar
Bu Makaleye Puan Ver  

Bölüm Başlık Kullanıcı Yorumları


Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !

Yorum Ekle  

Reklam Netinternet
Gizlilik | Copyright © 2006-2009 ™ Tüm hakları saklıdır.
Powered by BilgiPortal v2.2