Javascript Fonksiyona değer gönderme ve değer alma

Bir fonksiyon ile Javascript programının diğer işlemlerinin ilk ilişkisi fonksiyona bir değer gönderme ve ondan bir değer almaktır. Bir fonksiyon, yaptığı işin sonucu olarak, kendisini göreve çağıran komuta veya fonksiyona kendi adıyla bir değer

 verebilir. Bir örnek üzerinde düşünmeye başlayalım. Ziyaretçinizden telefon numarasını yazmasını istiyorsunuz. Ziyaretçi de sayfada bir INPUT kutusuna veya PROMPT diyalog kutusuna telefon numarasını yazıyor. Bu numarayı, sayfada başka bir programda veya bölümde kullanmadan önce, gerçekten doğru yazılıp yazılmadığını irdelemek istiyorsunuz. Ziyaretçinin verdiği telefon numarasını bir fonksiyona havale edebilirsiniz; bu fonksiyon telefon numarası arzu ettiğimiz biçimde yazılmışsa olumlu, yazılmamışsa olumsuz yanıt verebilir. Bütün yapacağımız şey, ziyaretçiden alacağımız bilgiyi, bu fonksiyona argüman olarak geçirmekten ibaret; fonksiyonun sonuç olarak verdiği değer doğru ise işleme devam edeceğiz, değilse ziyaretçiyi uyararak, doğru bilgiyi girmesini isteyeceğiz.

 

Şimdi düz yazı programınızda şu kodu yazıp, fonksiyon1.htm adıyla kaydedin:

<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <TITLE>Javascript'te Fonksiyon</TITLE> <SCRIPT LANGUAGE="Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim // fonksiyonu tanımlayalım: function dogruMu(numara) 	{ 	var karakter = null 	var durum = true 	if(numara.length != 13) 		{ 	durum = false // durum değişkenin değeri değişti 		} 	else 		{ 		for(var i = 0; i <= 12; i++) { 		karakter = numara.charAt(i) 	if ( i == 0 && karakter == "(" ) 		continue //birinci karakter parantez ise başa dön 	else //değilse devam et 		if( i == 4 && karakter == ")" ) 			continue //beşinci karakter parantez ise başa dön 			else //değilse devam et 			if( i == 8 && karakter == "-" ) 			continue //dokuzuncu karakter çizgi ise başa dön 			else //değilse devam et 		if( parseInt(karakter,10) >= 0 && 			parseInt(karakter,10) <= 9 ) 			continue //1, 4 ve 9 dışındaki karakter sayı ise devam et 			else //değilse dur 			{ 		durum = false //değişkenin değeri değişti 		break //fonksiyon kesildi 		} 		} 	} 	return(durum) //çağıran işleme durum?un değeri bildirildi 	} // --> </SCRIPT> </HEAD> <BODY> <PRE> <SCRIPT LANGUAGE = "Javascript1.2"> <!-- Javascript kodunu eski sürüm Browserlardan saklayalim // Ziyaretciden telefon numarasını isteyelim numara = prompt("Lütfen telefon numaranızı yazınız [(333)111-2222 gibi]", "") if(dogruMu(numara)) 	{ 	document.writeln("Telefon numaranızı verdiğiniz için teşekkür ederiz.") 	document.writeln("Müşteri temsilciniz size ilk fırsatta arayacaktır") 	} 	else 	{ 	document.writeln("Numaranızı örnekte görüldüğü şekilde yazmanızı rica ederiz") 	} // --> </SCRIPT> </PRE> </BODY> </HTML> 

Bu sayfada, önce “if(dogruMu(numara))” şeklindeki ifadeye dikkat edelim. Javascript, bu noktada “dogruMu” fonksiyonu çağıracak, bunu yaparken de fonksiyona “numara” adı altında bir değer geçirecektir. (Bu değeri, çeşitli şekillerde elde edebiliriz; bir Form nesnesinde INPUT kutusundan alabileceğimiz gibi, burada olduğu gibi PROMPT diyalog kutusuyla da alabiliriz.) Fonksiyondan bütün beklediğimiz “if” sorgulamasına “true” (doğru) veya “false” (yanlış) şeklinde bir karşılık vermesidir. Yukarıda “if” döngüsünü ele alırken, yanıtın doğru olması halinde ilk bölümdeki, yanlış olması halinde “else” bölümündeki komutların uygulandığını görmüştük. Şimdi burada dogruMu() fonksiyondan “true” sonucu dönerse, sayfaya teşekkür mesajı ve bilgi notu iki satır halinde yazılacak; “false” sonucu dönerse, ziyaretçi numarayı doğru yazması için uyarılacaktır. (Bu örnekte program bu noktada kesiliyor, oysa gerçek hayatta bu noktada ziyaretçiye bilgi girme aracının yeniden sunulması gerekir.)

Şimdi fonksiyona dönebiliriz. dogruMu() fonksiyonu, kendisine görev verecek işlemden veya fonksiyondan mutlaka bir argüman verilmesini istiyor. “numara” adıyla işleme sokulacak olan bu argüman, fonksiyon için bir nesnedir. Bu arada fonksiyonumuz kendi işleri için bir değişken oluşturuyor (karakter), ve içine boş değer koyuyor (null); daha sonra kendisinden beklenen değeri içine koyacağı bir değişken oluşturuyor ve içine varsayılan değer olarak “true” kelimesini koyuyor. Aksi kanıtlanmadığı taktirde, fonksiyonu göreve çağıran “if” döngüsüne bu değer bildirilecektir.

Fakat önce fonksiyonun gerçekten kendisine verilen bilgilerin, arzu edilen biçime uygun olup olmadığını sınaması gerekir. Bu bilgiyi tutan “numara” nesnesi, nesne olduğu için bazı özelliklere sahiptir; bu özelliklerden biri de uzunluğudur. Önce bu uzunluğun 13 karakter olup olmadığına bakıyoruz. Ziyaretçi, telefon numarasını yazdığı halde parantezleri veya kesme çizgisini unuttuysa, verdiği bilgilerin uzunluğu 13 karakterden az olacaktır, yani “numara.length” 13 olmayacak, “durum” değişkenin değeri “false” olarak değiştirilecektir. Yok, numaranın karakter sayısı 13 ise, fonksiyonumuz 13 karakteri, bir “for” döngüsü çerçevesinde tek tek irdelemeye başlayacaktır.

Bana Ders Anlat © 2008-2022