27 Ekim 2012 Cumartesi

Java Script Form Nesnesi


Bir önceki sayfamızda form nesnesinin hiyerarşi sıralamasında sayfa nesnesinden sonra geldiğini ve forms ismiyle bir dizi oluşturduğunu görmüştük. Bu sayfada form nesnesini kullanmayı öğreneceğiz. 

Form Komutları Sayfadaki form nesnelerini, name parametresiyle tanımladığımız isimler aracılığıyla çağırabiliriz: document.forms.yeniform gibi. Form komutlarını da bu kök üzerine yerleştiririz. Form komutlarını topluca listeledim. 

action Formun işlem sayfasına girmesini sağlar. 

method Formun metodunu girer (post/get). 

reset() Form bilgilerini siler (resetler). 

submit() Form bilgilerini girer. 

acceptCharset İstemcinin (server`ın) desteklediği karakter listesini girer. 

elements Form elemanlarını bir dizi haline getirerek girer. 



Bu komutlar üzerinde şimdilik fazla durmayalım, çünkü henüz bu tip bir uygulama yapmaya bilgilerimiz yeterli değil. ASP ve CGI derslerimizde bu komutları fazlasıyla kullanacağız. Yine de bazılarının işlevini sizler anlamışsınızdır. Çoğu okuyucunun Ziyaretçi Defteri, Bilgi Giriş Formu, Tartışma Forumu, Arama Motoru yapmak için sabırsızlandığını hatta için için henüz göstermediğim için bana kızdığını biliyorum. :) Ama şunu belirtmeliyim ki bu tip araçları sadece HTML ve JavaScript ile yapamazsınız. JavaScript bilgileri saklamaz, depolamaz, veri tabanı oluşturmaz; sadece sayfa yüklüyken değişkenlerinde veri tutabilir. Herşeyi hemen yapmak isteyen arkadaşlar birazcık sabretsin ve bu sayfanın altındaki bilgileri öğrenmeye çalışsınlar. CGI ve ASP derslerinde acısını çıkaracağız ama önce bir script dilini çok iyi öğrenmek gerekir. 

Bilgi Giriş Elemanları Bilgi giriş elemanlarının (düğme, metin kutusu, kontrol kutusu,vb.) yapısını HTML derslerimizde görmüştük. O sayfada form araçlarının parametreleri de tanıtılmıştı. İstersek o parametreleri JavaScript koduyla tanımlayabiliriz. Örneğin metin kutusunun uzunluğunu karakter cinsinden belirleyen size parametresini JavaScript kodlarıyla tanımlayalım: 


Javascript:
<html>
<head>
<title>Size Parametresi,</title>
<script language="JavaScript">

function uzunluk(x)
{
document.forms.Form1.mesaj.size=x
}

</script>
</head>
<body>

<form name="Form1">
Notunuz:<input name="mesaj"><br><br>
<table cellpadding="0" cellspacing="0" border="0" width="400"><tr>
<td><input type="button" onclick="uzunluk(10)" value="Kısa Not"></td>
<td><input type="button" onclick="uzunluk(40)" value="Orta Not"></td>
<td><input type="button" onclick="uzunluk(70)" value="Uzun Not"></td>
</tr></table>
</form>

</body>
</html>



size parametresi öğrendiklerimizden sadece bir tanesi. Diğer parametreleri de bu şekilde kullanabiliriz. Örneğin maksimum karakter girişini belirlemek için document.forms.Form1.mesaj.maxlength kodundan yararlanabiliriz. Gerisini sizlerin yaratıcılığına bırakayım. 

Hatırlarsanız, bir de value parametresi vardı. Bu parametreyle metin kutusuna yazı yazdırabiliyorduk. JavaScript kodlarıyla bu parametreyi, metin kutusuna yazılı olan ifadeyi değişkenlere aktarmak için kullanabiliriz: 


Javascript:
<html>
<head>
<title>Form Sayfası,</title>
<script language="JavaScript">

function gir()
{
bilgi1.innerHTML=document.forms.kimlik.veri1.value
bilgi2.innerHTML=document.forms.kimlik.veri2.value
bilgi3.innerHTML=document.forms.kimlik.veri3.value
bilgi4.innerHTML=document.forms.kimlik.veri4.value
bilgi5.innerHTML=document.forms.kimlik.veri5.value
}

</script>
</head>
<body>

<form name="kimlik">
Adınız:<input name="veri1">
SoyAdınız:<input name="veri2"><br>
Yaşınız:<input name="veri3">
Cinsiyetiniz:<input name="veri4">
Telefonunuz:<input name="veri5"><br><br>
<input type="button" value="Bilgileri Tabloya Gir" onclick="gir()"><br><br>
<table cellpadding="5" cellspacing="0" border="1">
<tr><td width="100">Adı:</td><td id="bilgi1" width="300"> </td></tr>
<tr><td>SoyAdı:</td><td id="bilgi2"> </td></tr>
<tr><td>Yaşı:</td><td id="bilgi3"> </td></tr>
<tr><td>Cinsiyeti:</td><td id="bilgi4"> </td></tr>
<tr><td>Telefonu:</td><td id="bilgi5"> </td></tr>
</table>
</form>

</body>
</html>



Bu uygulamayla bir Bilgi Giriş Formu yaptık aslında. Ama bir farkla, girdiğimiz bilgiler pencere kapatılınca yok oluyor. Buradan şu sonucu çıkartabilirsiniz: JavaScript bilgileri aktarmaya ve dönüştürmeye yarar ancak o bilgileri saklamaya yaramaz. Bunun için veri tabanı gereklidir ve bu veri tabanını CGI ve ASP derslerimizde oluşturacağız. Sanırım şimdi daha iyi anlaşıldı. 

Veri tabansız da birçok güzel şey yapılabiliniyor. Son uygulamamızı anlayan arkadaşlar rahatlıkla basit bir hesap makinesi yapabileceklerdir. Normal metin kutusu ve düğmeler yerine resimler de kullanılabilinir. İsterseniz deneyin, zor bir tarafı yok. Ders sayfalarının sonunda yer alan Hesap Makineleri örneklerine de bakabilirsiniz. 

Kontrol kutularını seçmek için checked parametresini true değeri verebiliriz veya bunu JavaScript ile document.forms.form1.kontrolkutusu1.checked=true şeklinde ifade edebiliriz. Hatırlayacağınız üzere; radyo kutusunun işlevi gereği sadece birinin seçilmesi için, her kutuya aynı ismi veriyorduk. Bu durumda yukarıda yazıldığı gibi name özelliğini kullanamayız ama id parametresini kullanarak bu sorunu halledebiliriz. Aşağıdaki uygulamaya bakalım. 


Javascript:
<html>
<head>
<title>Bundylogy Sorusu,</title>
<script language="JavaScript">

function cevap()
{
if (document.soru.rad3.checked==true) paragraf.innerHTML="En doğru cevabı işaretlediniz. Bravooo!"
else paragraf.innerHTML="Doğru ama en doğru değil, Al Bundy mantığıyla düşünün."
}

</script>
</head>
<body>

<form name="soru">
<b>Al Bundy soruyor:</b>Marcy Darcy kimdir? (Doğruluk derecesi en yüksek olanı işaretleyin lütfen...)<br>
<label for="rad1">
<input type="radio" id="rad1" name="radyo"> Part time çalışan bir paperboy`dur.
</label><br>
<label for="rad2">
<input type="radio" id="rad2" name="radyo"> Jefferson Darcy`nin kocasıdır.
</label><br>
<label for="rad3">
<input type="radio" id="rad3" name="radyo"> Bir tavuktur.
</label><br>
<label for="rad4">
<input type="radio" id="rad4" name="radyo"> Materyalist ruhu gelişkin bir banka çalışanıdır.
</label><br>
<label for="rad5">
<input type="radio" id="rad5" name="radyo"> Bundy`lerin komşusudur.
</label><br>
<input type="button" value="Değerlendir" onclick="cevap()">
<p id="paragraf">Doğru seçeneği işaretlediğinizden eminseniz, yukarıdaki düğmeye basın.</p> </form>

</body>
</html> 



Sözün özü, tüm parametreleri komut haline getirebiliyoruz. Bunun yanısıra Form Elemanları için kullanılan başka komutlar da var: 
focus() Tanımlanan bilgi giriş aracına odaklanmayı sağlar. 

blur() Tanımlanan bilgi giriş aracının odak halinden çıkmasını sağlar. 

click() Tanımlanan bilgi giriş aracını tıklamaya yarar. 

select() Tanımlanan bilgi giriş aracının seçili hale gelmesini sağlar.. 

Tüm bu komutların yer aldığı öğretici bir uygulama yapalım: 


Javascript:
<html>
<head>
<title>Bilgi giriş eleman komutları,</title>
<script language="JavaScript">

function komut(x)
{
switch(x)
{
case 1: document.form1.metinkutusu.select()
break
case 2: document.form1.metinkutusu.focus()
break
case 3: document.form1.metinkutusu.blur()
break
case 4: document.form1.dugme.click()
}
}

</script>
</head>
<body>

<form name="form1">
<input name="metinkutusu" value="metin kutusu">
<input type="button" name="dugme" value="uyarı düğmesi" onclick="alert(`Alarm!!!`)"><br><br>
<input type="button" value="Metin kutusuna odaklan" onclick="komut(2)"><br>
<input type="button" value="Metin kutusundaki yazıyı seç" onclick="komut(1)"><br>
<input type="button" value="Metin kutusunu seçili halden çıkar" onclick="komut(3)"><br>
<input type="button" value="Uyarı düğmesine bas" onclick="komut(4)"><br>
</form>

</body>
</html>



Bu uygulamamızı irdeleyelim biraz: select() komutu form aracını seçili hale getiriyor ve odaklıyor. Yani ayrıca odaklamamıza gerek kalmıyor, üzerine blur() komutunu uygularsak, odaklanma kalkıyor ama seçili hal devam ediyor tabi. 

Seçenek Kutusu HTML derslerinde seçenek kutusunun nasıl görüntülendiği anlatılmıştı ama nasıl kullanıldığı üzerine birşey söylenilmemişti. Şimdi söyleyelim. Seçenek kutusunda kullanıcının işaretlediği seçeneği selectedIndex komutuyla indeks (sıra) numarası cinsinden ifade ediyoruz: 


Javascript:
<html>
<head>
<title>Seçenek Kutusu İndeksleri,</title>
<script language="JavaScript">

function sec()
{
var x=document.sira_no.yazar.selectedIndex
alert(x+1)
}

</script>
</head>
<body>

<form name="sira_no">
<select name="yazar"
<option>Mario Llosa Vargas
<option>Amin Maalouf
<option>John Steinback
<option>Ursula K. Leguin
<option>Panait Istrati
</select>

<input type="button" value="Kaçıncı Seçenek" onclick="sec()">
</form>

</body>
</html>



Bu uygulama, kullanıcının seçtiği seçeneğin sıra numarasını gösteriyor. selectedIndex komutu ile seçeneğe 0 (sıfır) değeri verdiğinden, uygulamada sıra numarasını x+1 şeklinde ifade ettik. 

Seçenek kutusundaki seçenekler options isimli bir dizi oluşturur. İlk seçenek options[0] şeklinde belirtilir. options[0].text ise, ilk seçeneği metinsel değer olarak ifade eder. Önceki uygulamada kullanıcının seçtiği seçeneğin sıra numarasını ifade ediyorduk. Sıra numarası yerine, seçeneği doğrudan nasıl ifade edebiliriz? 


Javascript:
<html>
<head>
<title>Seçenek Kutusu: Seçilen Seçeneği Gösterme,</title>
<script language="JavaScript">

function sec()
{
var x=document.secenek.yazar.selectedIndex
var y=document.secenek.yazar.options[x].text
alert(y)
}

</script>
</head>
<body>

<form name="secenek">
<select name="yazar"
<option>Mario Llosa Vargas
<option>Amin Maalouf
<option>John Steinback
<option>Ursula K. Leguin
<option>Panait Istrati
</select>

<input type="button" value="Hangi Seçenek" onclick="sec()">
</form>

</body>
</html>



Ne yaptık? Kullanıcının seçtiği seçeneği sıra sayısı cinsinden ifade ettik. (selectedIndex ile) Sonra seçilen sıra numarasını options dizini ve text komutu sayesinde metinsel değere dönüştürdük. text yerine index komutu kullansaydık, yine sıra numarası elde edecektik. 

Dilersek text komutunu seçeneklerin metnini değiştirmek için kullanabiliriz. 


Javascript:
<html>
<head>
<title>Seçenek Kutusu Seçenek Değiştirme,</title>
<script language="JavaScript">

function secenekekle()
{
var x=document.forms.secenek.adsoyad.value
var y=document.secenek.yazar.selectedIndex
document.secenek.yazar.options[y].text=x
}

</script>
</head>
<body>

<form name="secenek">
<select name="yazar"
<option>Mario Llosa Vargas
<option>Amin Maalouf
<option>John Steinback
<option>Ursula K. Leguin
<option>Panait Istrati
</select><br>
Yazar ismi:
<input name="adsoyad" size="80">

<input type="button" value="Seçeneği Değiştir" onclick="secenekekle()">
</form>

</body>
</html>



Seçenek kutusunu düğmeyle beraber kullanmak zorunda değiliz. Seçenek kutusunda başka bir seçeneği işaretlediğimiz zaman işlem yapılacaksa onchange olayı kullanılmalıdır. 


Javascript:
<html>
<head>
<title>Seçenek Kutusu: OnChange Olayı,</title>
<script language="JavaScript">

function degistir()
{
var x=document.secenek.yazar.selectedIndex
yazi.innerHTML=document.secenek.yazar.options[x].text
}

</script>
</head>
<body>

<form name="secenek" onchange="degistir()">
<select name="yazar">
<option>Mario Llosa Vargas
<option>Amin Maalouf
<option>John Steinback
<option>Ursula K. Leguin
<option>Panait Istrati
</select><br>
<p id="yazi">Seçeneği değiştiriniz...</p>
</form>

</body>
</html>

Java Script Metin Komutları

Şu ana kadar document. başlangıçlı tek kod gördük: document.write şimdilik bu kodla devam edeceğiz ve metinsel yöntemler üzerinde duracağız. DHTML sayfalarında document. başlangıçlı kodların hepsini ayrıca ele alacağız 

Karakter Sayısı Belirleme Bu sayfadaki metinsel kodlar, metinsel değerleri şekillendirme yöntemleridir. Örneğin değişken.length yöntemiyle metinsel bir ifadenin kaç karakterden oluştuğunu bulabiliriz. Not: Boşluklar da karakter ifade eder. 


Javascript:
<html>
<head>
<title>Karakter sayısı</title>
<script language="JavaScript">
function bul()
{
var metin
metin = prompt("Metinsel bir ifade yazın.", "Buraya lütfen...")
if (metin == null || metin == "") alert("Yazı kutusuna birşey yazmadınız.")
else
{
document.write("Yazılan metin: " + metin + "<br>")
document.write("Karakter sayısı: " + metin.length)
}
}
</script>
</head>
<body>

<form>
<p>Aşağıdaki düğme yazılan bir ifadenin karakter sayısını bulmaya yarar:</p>
<input type="button" value="Karakter Sayısı" onclick="bul()">
</form>

</body>
</html>



Uygulamamız da metin isimli değişkene length yöntemi uygulanıyor. (Kalın harflerle yazdım.) 

Metin İçinde Metin Arama Aynı yapıda başka bir yöntem koduna geçelim: indexOf("..."). indexOf yöntem kodu ile metinsel bir ifadeyi, başka metinlerin arasında ararız. (Arama motoru yapmak isteyenler iyi okusun.) Mesela i değişkenin değeri "Cameron Diaz" olsun. Biz "Diaz" metinsel ifadesinin bu metin içinde bulunup bulunmadığını bu kodla şöyle anlarız: j = i.indexOf("Diaz"). "Diaz" metinsel ifadesi "Cameron Diaz" metin değerli i içinde var. Bu durumda j pozitif bir tamsayı değeri alır. Olmasaydı -1 değeri alacaktı. Aşağıdaki uygulama herşeyi anlatıyor: 


Javascript:
<html>
<head>
<title>Karakter Bulma</title>
<script language="JavaScript">
function bul()
{
var metin = prompt("Öyle bir şey yazın ki içinde küçük "a" harfi olmasın.")
var karakter=metin.indexOf("a")
if (karakter >= 0)
{
document.write("<b>"" + metin + ""</b> ifadesinde "a" harfi var.")
}
else
{
document.write("<b>"" + metin + ""</b> ifadesinde "a" harfi yok.")
}
}
</script>
</head>
<body>

<form>
<p>Aşağıdaki düğmeye basın...</p>
<input type="button" value="Karakter Arama" onclick="bul()">
</form>

</body>
</html>



indexOf koduna çok benzeyen bir başka yöntem koduna geçelim: match. Kullanım şekli indexOf() ile aynıdır. Tek farkı, eğer ifade aranan metnin içinde yoksa null (yok) değerini, varsa ifadenin metinsel değerini alır: 


Javascript:
<html>
<head>
<title>Karakter Bulma</title>
<script language="JavaScript">
function bul()
{
var metin = prompt("Öyle bir şey yazın ki içinde küçük "a" harfi olmasın.")
var karakter=metin.match("a")
if (karakter == "a")
{
document.write("<b>"" + metin + ""</b> ifadesinde "a" harfi var.")
}
else
{
document.write("<b>"" + metin + ""</b> ifadesinde "a" harfi yok.")
}
}
</script>
</head>
<body>

<form>
<p>Aşağıdaki düğmeye basın...</p>
<input type="button" value="Karakter Arama" onclick="bul()">
</form>

</body>
</html>



Yukarıdaki uygulama bir öncekiyle aynı sonucu veriyor ancak match kodu kullanılmakta. 

Metin İçinde Bölüm Belirleme Bir başka yöntem koduna geçiyorum: substr(...,...). substr kodu metinin belli bir bölümünü ifade etmeye yarar. Örneğin met = "Cameron Diaz" şeklindeki metinsel değerlikli bir değişkene kodu şöyle uygularsak: met.substr(7,4), "Diaz" metinsel değerini elde ederiz. Buradaki 7 sayısı, alıntı bölümünün 8. harften başladığını (ilk harf 0. sırada sayılıyor) ve 4 sayısı alıntının 4 harften oluştuğunu belirtiyor. Aşağıdaki uygulamaya bakalım: 


Javascript:
<html>
<head>
<title>Karakter Alıntısı</title>
<script language="JavaScript">
function al()
{
var metin = prompt("Yazılım buraya yazacağınız metnin 3. harfinden itibaren 5 harflik kısmını yazdırır.")
var karakter=metin.substr(2,5)
document.write("<b>"" + metin + ""</b> ifadesindeki 3. harften itibaren 5 harflik kısım şöyledir:")
document.write("<br>"" + karakter + """)
}
</script>
</head>
<body>

<form>
<p>Aşağıdaki düğmeye basın...</p>
<input type="button" value="Karakter Alıntısı" onclick="al()">
</form>

</body>
</html>



Uygulama sayesinde kodun işlevi iyice anlaşıldığını sanıyorum. Boşluklarında birer karakter olduğunu tekrar hatırlatayım. 

Büyük Harfe veya Küçük Harfe Çevirme Bu bölümün son yöntem kodları: toLowerCase (küçük harfe çevirir), toUpperCase (büyük harfe çevirir). Bu kodlar da öncekiler gibi değişkenden sonra .toLowerCase(...) veya .toUpperCase(...) şeklinde kullanılır. Anlaşılması çok kolay olduğu için hemen uygulamamıza geçelim. 


Javascript:
<html>
<head>
<title>Babalama</title>
<script language="JavaScript">
function babala()
{
var metin = prompt("İsminizi yazın...","Buraya lütfen")
var buyuk=metin.toUpperCase(metin)
var kucuk=metin.toLowerCase(metin)
babalasayfa=window.open("","Yeni_Sayfa", "toolbar=no,location=no,directories=no, status=no, menubar=no,scrollbars=yes, resizable=no,copyhistory=no,width=480, height=180, left=200, screenX=200, top=100, screenY=100")
babalasayfa.document.write("<html><head></head><body bgcolor=#ffffcc>")
babalasayfa.document.write("<h1>En büyük " + buyuk + "! Başka büyük yok!</h1><br>")
babalasayfa.document.write("<h4>Sayın " + kucuk + ", babalama ücreti 50 milyon! Hemen ödeyin</h4>")
babalasayfa.document.write("</body></html>")
}
</script>
</head>
<body>

<form>
<p>İsmini yazın lütfen...</p>
<input type="button" value="Babalama Düğmesi" onclick="babala()">
</form>

</body>
</html>



Bu sayfada metinsel yöntem kodlarının bir kısmını inceledik. O kadar çok var ki bu sayfada hepsini incelemenin imkanı yok. Ama hepsi böyle kullanımı basit kodlar. JavaScript Komutlarını anlatan referans sayfalarında tüm metinsel kodları görebilirsiniz.

Java Script Pencere Komutları

Bu sayfaya kadar JavaScript`in temellerini öğrenmek için alert(...) ve document.write(...) komutlarıyla idare ettik. Artık JavaScript`in kodlarına ve inceliklerine ağırlık vereceğiz. 

Bu sayfanın konusu pencere komutları. Birçok öğretici site pencere komutlarını sonlara doğru anlatmış. Ama bence bu konu çok zevkli ve daha önce anlatarak okuyucuları JavaScript`in renkli dünyasına daha kolay çekmek mümkün. Hem neler yapabileceklerini zihinlerinde düşünmeye başlattırabilecek bir konu bu. Sanırım konuyu yeterince övdüm. Sayfamız bir sürü örnekle dolu. Seveceğinizi umarım 

Uyarı Kutusu İlk pencere komutumuz alert(...) kodu. Bu kodu daha önceki sayfalarda da kullanmıştık ve biliyoruz ki uyarı kutusu yapmaya yarar. JavaScript değişkenlerini ve tırnak içinde olmak şartıyla HTML kodlarını uyarı kutusuyla gösterebiliyorduk ve "+" işareti ile bunları birleştirebiliyorduk. Şimdi küçük bir tekrar uygulaması yapalım. 


Javascript:
<html>
<head>
<title>Uyarı Kutusu</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function kup()
{
var y
y = 59 * 59 * 59
alert("59 sayısının kübü = " + y)
}
</script>
</head>
<body>

<form>
59 sayısının kübünü öğrenmek istiyorsanız düğmeye basın.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="kup()" value="Sayının kübünü al!">
</form>

</body>
</html>



Onay Kutusu Uyarı kutusu haricinde kullanabileceğimiz bir başka pencere aracı da onay kutusudur. Bu kutu ile kullanıcının onayı alınır. Bu kutuyu yaratmak için confirm(...) komutunu bir değişkene eşitleriz. Kullanıcının onayı true, onay vermemesi ise false şeklinde ifadelendirilir. Uygulamamıza bakalım. 


Javascript:
<html>
<head>
<title>Onay Kutusu</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function bomba()
{
var onay
onay = confirm("Mars gezegenine doğrulttuğunuz nükleer bombalar hazır. Gezegeni yok etmek için onay verin.")
if (onay == true) document.write("Koskoca gezegeni yok ettin de eline ne geçti?")
else document.write("Yok etme operasyonu iptal edildi, tüm Marslılar size teşekkür ediyor.")
}
</script>
</head>
<body>

<form>
Nükleer bombaları ateşlemek için düğmeye basınız.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="bomba()" value="ATEŞ!">
</form>

</body>
</html>



Yazı Kutusu Hemen bir başka pencere komutuna geçiyorum. Kullanacağımız pencere aracı yazı kutusu. Yazı kutusu sayesinde kullanıcıyla program arasında bir veri alışverişi yapılır. Kullanıcı kutusu, tıpkı onay kutusu gibi bir değişkene eşitlenir ve prompt(...,...) komutu ile ifade edilir. Görüldüğü üzere prompt komutu iki değer alır. İlk değer yazı kutusunda yer alan bilgi verici yazıyı belirler, ikinci değer ise yazı kutusunun yazma yerinde yer alan yazıyı belirler, bu yazı genellikle girdi bilgisi içerir. Kullanıcının yazdığı yazı, prompt komutunun eşitlendiği değişkene değer olarak atanır. Yazı kutusunda Cancel (iptal) düğmesi yer almaktadır. Kullanıcı bu düğmeye bastığında değişken null (sıfır yani) değeri alacaktır. 


Javascript:
<html>
<head>
<title>Yazı Kutusu</title>
<script language="JavaScript">
//İlk fonksiyonu hazırlıyoruz.
function kabul()
{
alert("İçeri girebilirsin.")
document.write("<h1>Barımıza Hoşgeldiniz!</h1>")
}
//İkinci fonksiyonu hazırlıyoruz.
function red()
{
alert("Hoop ufaklık. Bas geri!")
document.write("<h1>18 yaşından küçükler giremez!</h1>")
}
//Üçüncü fonksiyonu hazırlıyoruz.
function geri()
{
alert("Cevap veremiyorsun değil mi?")
document.write("<h1>Evine dön!</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var yas= prompt("Yaşınız kaç acaba?","Lütfen yaşınızı rakam ile yazınız...")
if (yas >= 18) kabul()
if (yas < 18 && yas > 0) red()
if (yas == null || yas == "") geri()
</script>

</body>
</html>



Yeni Pencere Açma Yeni bir pencerede sayfa açmak için window.open(...) kodundan yararlanılır. Parantez içine açılacak sayfanın adresi yazılır. 


Javascript:
<html>
<head>
<title>Yeni Pencere, yeni sayfa.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function pencere()
{
//Açılacak sayfanın dosya ismi: dersjscr.asp
window.open("dersjscr.asp") }
</script>
</head>
<body>

<form>
JavaScipt`e giriş sayfasını açmak için düğmeye basın.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="pencere()" value="JavaScript`e Giriş">
</form>

</body>
</html> 



Bu uygulamayı çok rahat anlamışsınızdır, bu uygulamada kod varsayılan değerleriyle biçimlendiriliyor. Ama şimdiki uygulamayı çok dikkatli inceleyin, uygulamadan sonra gerekli açıklamayı yapacağım. 


Javascript:
<html>
<head>
<title>Yeni Pencere, yeni sayfa.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function pencere()
{
//Açılacak sayfanın dosya ismi: dersjscr.asp
window.open("dersjscr.asp", "Yeni_Sayfa", "toolbar=no,location=no,directories=no, status=no, menubar=yes,scrollbars=yes,resizable=no,copyhistory=yes,width=760, height=460") }
</script>
</head>
<body>

<form>
JavaScipt`e giriş sayfasını açmak için düğmeye basın.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="pencere()" value="JavaScript`e Giriş">
</form>

</body>
</html> 



Bu uygulamadaki pencere açma komutu biraz daha değişik: open.window(dosya adresi, pencere ismi, pencere özellikleri). Aşağıdaki listede pencere özelliklerini ve açıklamalarını görüyorsunuz: 
menubar Pencerenin üst bölümünde yer alan gözatıcı (browser) menü çubuğunu ifade eder. 
menubar=yes 
status Pencerenin alt bölümünde yer alan küçük mesajları ifade eder. 
status = no 
scrollbars Kaydırma çubuklarını ifade eder. 
scrollbars = yes 
resizable Pencerenin büyüklüğünün fare ile değiştirilebilirliğini ifade eder. 
resizable = no 
width Pencere genişliğini piksel cinsinden ifade eder. 
width = 600 
heigth Pencere yüksekliğini piksel cinsinden ifade eder. 
heigth = 400 
toolbar Pencerenin üstünde, menü çubuğunun altında yer alan gözatıcı araç çubuğunu ifade eder. 
menubar = no 
location Pencerenin adres kutusunu ifade eder. 
location = 600 
directories Netscape gözatıcılarının "What`s new!", "What`s cool!" isimli dizinlerini ifade eder. 
directories = no 
left Pencerenin ne kadar solda yer alacağını belirler; Netscape göz atıcıları desteklemiyor. 
left = 100 
screenX Pencerenin ne kadar solda yer alacağını belirler; Internet Explorer göz atıcıları desteklemiyor. 
screenX = 100 
top Pencerenin ne kadar üstte yer alacağını belirler; Netscape göz atıcıları desteklemiyor. 
top = 50 
screenY Pencerenin ne kadar üstte yer alacağını belirler; Internet Explorer göz atıcıları desteklemiyor. 
screenY = 50 

NOT1: Internet Explorer ve Netscape Navigator pencereyi konumlandırmak için farklı özellikler kullanılıyor. Her ikisinin desteklediği özellikleri beraber kullanırsanız sorun kalmaz. 

NOT2: Evet/hayır tipi değer alan (boolean) özellikleri yes/no veya 1/0 gibi değerler alır. 

Çok Sayıda Pencere Açma 
Birden fazla pencereyi tek tıklamayla nasıl açarız? Her pencere açma komutunu bir değişkene eşitleyen fonksiyon kurarız: 


Javascript:
<html>
<head>
<title>Yeni pencereler.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function pencere()
{
//Sayfalar açılıyor.
a1 = window.open("dersjscr.asp?DersNo=1", "Ders1", "toolbar=no,location=no,directories=no, status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=760, height=460")
a2 = window.open("dersjscr.asp?DersNo=2", "Ders2", "toolbar=no,location=no,directories=no, status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=760, height=460")
a3 = window.open("dersjscr.asp?DersNo=3", "Ders3", "toolbar=no,location=no,directories=no, status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=760, height=460")
a4 = window.open("dersjscr.asp?DersNo=4", "Ders4", "toolbar=no,location=no,directories=no, status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=760, height=460")
a5 = window.open("dersjscr.asp?DersNo=5", "Ders5", "toolbar=no,location=no,directories=no, status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=760, height=460")
}
</script>
</head>
<body>

<form>
JavaScipt derslerinin ilk beş sayfasını açmak için düğmeye basın.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="pencere()" value="JavaScript Dersleri">
</form>

</body>
</html>



Sayfa Yönlendirme JavaScript kullanarak mevcut pencerede kullanıcının istenen sayfaya yönlendirilmesi için location = "adres" komutunu kullanırız: 


Javascript:
<html>
<head>
<title>Sayfa yönlendirme.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function yonlendir()
{
//Yönlendirilecek adres: dersjscr.asp?DersNo=1
location = "dersjscr.asp?DersNo=1"
}
</script>
</head>
<body>

<form>
Pencerenizi "JavaScipt`e Giriş" sayfasına yönlendirmek için düğmeye basın.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="yonlendir()" value="JavaScript`e Giriş">
</form>

</body>
</html>



Sayfayı Yeniden Yükleme JavaScript kullanarak sayfanın yeniden yüklenmesini (refresh) sağlamak için location.reload() komutundan yararlanılır. 


Javascript:
<html>
<head>
<title>Sayfa yönlendirme.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function tazele()
{
//Yönlendirilecek adres: derjsct1.html
location.reload()
}
</script>
</head>
<body>

<form>
Sayfayı yeniden yüklemek için aşağıdaki düğmeye basınız.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="tazele()" value="Sayfayı yeniden yükle">
</form>

</body>
</html>



Çok Sayfalı Uygulama Geliştirme 
Buraya kadar hep önceden hazırlanmış sayfaları açmayı inceledik. Peki daha önce olmayan bir sayfayı açabilir miyiz? Soruyu daha doğru bir şekilde sorayım: JavaScript ile yazıların bir kısmını yeni bir pencerede yazdırabilir miyiz? Elbette. open.window("...","...","...") komutundaki ilk yere sayfa adresi yazıyorduk; eğer yazmazsak yeni bir sayfa açılmış olur. Bu kodu bir değişkene eşitleyerek, yeni sayfanın ismini belirlemiş oluruz ve o sayfaya yazılması gerekenleri, o isimle tanımladığımız nesnelere yazarız. Uygulamayı inceleyince anlayacaksınız. 


Javascript:
<html>
<head>
<title>Dokümanları başka sayfada gösterme.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function yenipencere()
{
//Yepyeni bir sayfa açıyoruz.
yenisayfa = window.open("", "Yeni_Sayfa", "toolbar=no,location=no,directories=no, status=no, menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=280, height=50, left=200, screenX=200, top=100, screenY=100")
yenisayfa.document.write("<font color= blue>Yeni bir pencere açmak ve o pencereye yazı yazmak.</font>")
yenisayfa.document.write("<br>İşte bütün mesele bu!")
yenisayfa.document.write("<br>Bu yöntemle daha neler yapılır, neler!")
}
</script>
</head>
<body>

<form>
Başka bir sayfa yaratmak için düğmeye basın.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="yenipencere()" value="Yeni Pencere">
</form>

</body>
</html>



Pencere Kapatma Bu ders konumuz gereği bir sürü sayfayı JavaScript ile açtık ama hepsini elimizle kapattık. İsterseniz bir de JavaScript`le kapatalım. Komutumuz çok basit: window.close(). 


Javascript:
<html>
<head>
<title>Sayfayı kapatmak.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function kapat()
{
//Sayfa kapatılıyor.
window.close()
}
</script>
</head>
<body>

<form>
Sayfayı kapatmak için aşağıdaki düğmeye basınız.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="kapat()" value="Sayfayı kapat">
</form>

</body>
</html>



Pencere Kutusu Son olarak window.status komutu üzerinde duralım. Pencerenin altında linklerin yazılı olduğu kutucuğa yazı yazmaya yarar. Örneğin "Doğum günün kutlu olsun Banu" yazdıralım. 


Javascript:
<html>
<head>
<title>Sayfayı kapatmak.</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function kutlama()
{
//Sayfa kapatılıyor.
window.status = "Doğum günün kutlu olsun Banu"
}
</script>
</head>
<body>

<form>
Düğmeye basarsanız pencerenin alt kısmında bir mesaj göreceksiniz.<br>
<!--Düğmeye basıldığında fonksiyon çağrılır.-->
<input type="button" onclick="kutlama()" value="Banu`ya mesaj">
</form>

</body>
</html>



Bu bölümde pencerelerle ilgili windows. başlangıçlı bazı kodlar gördük. Böyle birçok kod var; hepsini ileriki (DHTML) derslerimizde ayrıntılı olarak işleyeceğiz.
 

Java Script Mantıksal İşlemler

Akış denetimi ve döngü denetimi derslerimizde koşul ifadelerinin kullanıldığını gördük. Koşul deyimleri bu koşul ifadesine göre eleme yapıyor, döngü deyimleri bu koşul ifadesine göre çevrim oluşturuyordu. Ancak bu koşul ifadesi tek bir koşuldan oluşuyordu, acaba birden fazla koşulun sorgulanması mümkün müdür? 

Elbette. Bunun için ilk yol, deyim içinde deyim kullanmaktır. Örneğin aşağıdaki uygulamada if koşul deyimi içiçe kullanılarak, sayının 25 ile 60 arasında olduğunu sorgulamaktadır: 


Javascript:
<html>
<head>
<title>İkili Sorgulama</title>
<script language="JavaScript">
//İlk fonksiyonu hazırlıyoruz.
function onay()
{
document.write("<h1>Sayı 25 ile 60 arasındadır.</h1>")
}
//İkinci fonksiyonu hazırlıyoruz.
function red()
{
document.write("<h1>Sayı 25 ile 60 arasında değildir.</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var x=38
if (x < 60)
{
if (x > 25) onay()
else red()
}
else red()
</script>

</body>
</html>



Burada içiçe if koşul deyimi kullanılmış ve önce sayının 60`dan küçük olması sorgulanıyor. Sayının 60`dan küçük olması halinde, bu sefer de sayının 25`ten büyük olması sorgulanıyor. Yani 60`tan küçük olan sayıların 25`ten büyük olması sorgulanıyor. Böylece sayının 60`dan küçük ve 25`ten büyük olması sorgulanmış oluyor. 

JavaScript`te "ve" Operatörü: "&&" 
İçiçe deyim kullanmak da güzel bir yol ama daha kısa bir yolumuz var: Mantıksal İşlemler. Sayının hem 25`ten büyük olmasını, hem de 60`tan küçük olmasını istiyorsak ve anlamına gelen && mantıksal işlem işareti ile iki koşulu tek bir koşul ifadesi haline dönüştürebiliriz: 


Javascript:
<html>
<head>
<title>Mantıksal İşlemler</title>
<script language="JavaScript">
//İlk fonksiyonu hazırlıyoruz.
function onay()
{
document.write("<h1>Sayı 25 ile 60 arasındadır.</h1>")
}
//İkinci fonksiyonu hazırlıyoruz.
function red()
{
document.write("<h1>Sayı 25 ile 60 arasında değildir.</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var x=65
if (x < 60 && x > 25) onay()
else red()
</script>

</body>
</html>



Bu sefer && (ve) işaretini kullanarak sayının 60`tan küçük olmasını ve sayının 25`ten büyük olmasını sorguladık. Buradaki ve kavramını Matematik konusunun mantık (logic) dersinden hatırlıyorsunuzdur. (Matematiği anlamakta zorlananlar programcılığa hiç başlamasınlar.) Özetle ve ifadesinin sorgulama sonuçları şöyleydi: 
Doğru && Doğru = Doğru 
Doğru && Yanlış = Yanlış 
Yanlış && Doğru = Yanlış 
Yanlış && Yanlış = Yanlış 

&& operatörüyle yapılan sorgulamanın onaylanması için, her iki koşulun da sağlanması gerekir. Aksi takdirde sorgulama onaylanmayacaktır. 

JavaScript`te "veya" Operatörü: "||" 
Bir başka mantıksal işlem operatörü: || (veya anlamındadır; bu işareti oluşturmak için iki defa ALTGR + "tire" tuşuna basın. "tire" tuşu backspace (geri al) tuşunun solunda bulunur. Eminim matematik bilgilerinden hiç kuşku duymadığım okuyucular bu operatörün sorgulama sistemini hemen hatırlamışlardır ama ben yine de yazayım.
Doğru || Doğru = Doğru 
Doğru || Yanlış = Doğru 
Yanlış || Doğru = Doğru 
Yanlış || Yanlış = Yanlış 

|| (veya) operatörünün && (ve) operatöründen farkı görülüyor. Bir sorgulamada || operatörü kullanılmışsa, koşullardan bir tanesinin gerçekleşmesi onay için yeterlidir. Son uygulamamızda 65 sayısını && operatörü ile sorgulamıştık: 

(65 < 60) && (65 > 25) 

Bu koşulun ilk kısmı yanlış, ikinci kısmı ise doğruydu. Yanlış && doğru = yanlış olduğundan sorgulama sonucu red fonksiyonuna gönderilmişti. Aynı koşul ifadelerini || operatörü ile sorgulasaydık sonuç başka olacaktı: 

(65 < 60) || (65 > 25) 

Buradaki işlem: Yanlış || doğru = doğru işlemidir. Ve koşul ifadesi kabul görür. Bu nedenle && ile || ifadelerini ne zaman kullanacağımıza dikkat etmeliyiz. Şimdi || operatörü için başka bir uygulama geliştirelim: Bu uygulamamız öncekiyle aynı sonucu versin. Yanlız bunun için koşul ifadesini ve koşul işlemlerini değiştireceğim, aradaki farka dikkat ediniz. 


Javascript:
<html>
<head>
<title>Mantıksal İşlemler</title>
<script language="JavaScript">
//İlk fonksiyonu hazırlıyoruz.
function onay()
{
document.write("<h1>Sayı 25 ile 60 arasındadır.</h1>")
}
//İkinci fonksiyonu hazırlıyoruz.
function red()
{
document.write("<h1>Sayı 25 ile 60 arasında değildir.</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var x=65
if (x > 60 || x < 25) red()
else onay()
</script>

</body>
</html>



Aradaki farkı anlayanlar bu işi kapmış demektir. 
JavaScript`te "değil" Operatörü: "!" 
Bir diğer mantıksal işlem operatörü: ! (değil) operatörüdür. Bu operatör koşul ifadesinin solunda yer alır ve o ifadenin olmamasını sorgular. Uygulamayla gösterelim: 


Javascript:
<html>
<head>
<title>Mantıksal İşlemler</title>
<script language="JavaScript">
//İlk fonksiyonu hazırlıyoruz.
function negatif()
{
document.write("<h1>Negatif sayı.</h1>")
}
//İkinci fonksiyonu hazırlıyoruz.
function pozitif()
{
document.write("<h1>Pozitif sayı.</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var x=12
if (!(x >= 0)) negatif()
else pozitif()
</script>

</body>
</html>



Uygulamamızda 12 değeri verilen x değişkeninin 0`dan küçük olup olmadığı sorgulanmakta. Eğer sıfırdan büyük değilse negatif(), aksi takdirde pozitif() fonksiyonları çağrılmaktadır., 

Değişkenlere Mantıksal Değer Atama Sayfamızda aynı koşul ifadelerini birçok kez sorguluyorsak veya koşul ifadesi çok uzunsa, değişkenlere atamayı tercih edebiliriz. Yapı olarak değişkene normal bir değer vermekten farkı yoktur. Örneğin üstteki uygulamayı şu hale dönüştürebiliriz: 


Javascript:
<html>
<head>
<title>Değişkenlere Mantıksal Değer Atama</title>
<script language="JavaScript">
//İlk fonksiyonu hazırlıyoruz.
function negatif()
{
document.write("<h1>Negatif sayı.</h1>")
}
//İkinci fonksiyonu hazırlıyoruz.
function pozitif()
{
document.write("<h1>Pozitif sayı.</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var x=12
var y=((x > 0) || (x == 0))
if (!y) negatif()
else pozitif()
</script>

</body>
</html>



Bu uygulamamızda ((x > 0) || (x == 0)) mantıksal değerini y değişkenine atadık.


KAYNAK: http://www.bilgisayardershanesi.com/bilgisayar_dersleri/java-script-mantiksal-islemler.html

Java Script Döngü Denetimi


Bu sayfamızda döngü denetimini ve bu döngü oluşturan döngü deyimlerinin üzerinde duracağız. Bunlar while..., do...while... ve for.... 

"while" Döngü Deyimi 
Öğreneceğimiz ilk döngü deyimi: while (Türkçesi: öyleyken). Bu deyimin yapısı şöyledir: 

while (koşul ifadesi) işlem 

birden fazla işlem söz konusuysa, 

while (koşul ifadesi) 

İŞLEMLER 


Bu deyimdeki koşul ifadesi sağlandığı sürece deyimdeki işlemler sürekli; bir döngü oluşturacak şekilde, kendisini tekrarlar. Bu işlemler öyle olmalıdır ki belli bir sayıda çevrimden sonra bu koşul ifadesini sağlamasın ve döngüden çıksın, aksi takdirde döngü sonsuza kadar devam eder. Örnek mi? 


Javascript:
<html>
<head>
<title>Döngü Deyimleri</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function mesaj()
{
document.write("<h1>Cameron Diaz</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var a=1
while (a == 1) mesaj()
</script>

</body>
</html>



Heh he. Kötü şakaydı, kabul ediyorum. Öyle birşey yapmalısınız ki sonunda döngü sona ermeli ve kendini tekrar etmeyi bırakmalı. Mesela beş defa Cameron Diaz yazalım. 


Javascript:
<html>
<head>
<title>Döngü Deyimleri</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function mesaj()
{
document.write("<h1>Cameron Diaz</h1>")
}
</script>
</head>
<body>

<script language="JavaScript">
var a=1
while (a < 6)
{
a++
mesaj()
}
</script>

</body>
</html>



Bu uygulamadaki while döngüsünü yakın plana alalım. Döngünün koşul ifadesi a değişkeninin 6`dan küçük olmasıdır. Yani a değişkeninin değeri 6`dan küçük olduğu sürece süslü parantez içindeki işlemler birbirini tekrar edip duracak. Ama bu sonlu bir döngü, bilgisayarımızı kilitleme tehlikesi yok. Çünkü işlemin içinde a`nın değeri her çevrimde 1 artıyor. Ayrıca her çevrimde bir kez "Cameron Diaz" yazılıyor. Beş çevrim sonunda a değişkeni 6 değerine ulaştığı için, 6. çevrim yapılmaz ve döngü sona erer. 

"do... while" Döngü Deyimi 
do...while deyimi ile while deyimi arasında işlevsel olarak fark yok gibi görünür, ancak do...while deyiminde koşul ifadesi altta bulunur; ve koşul değerlendirmesi işlemi çevrimden önce değil, sonra yapılır. Deyiminin yapısı şöyledir: 

do 
İŞLEMLER 
while (koşul ifadesi) 

birden fazla işlem söz konusuysa, 

do 

İŞLEMLER 

while (koşul ifadesi) 

Şu birden fazla işlem söz konusuysa, deyimini devam ettirmenin sanırım gereği kalmadı. Zekasına sonsuz saygı duyduğum okuyucular anlamıştır ki süslü parantez birden fazla işlemi; tek komutla harekete geçirmek için, bir araya toplamaya yarar. 


Javascript:
<html>
<head>
<title>Döngü Deyimleri</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function kare(sayi)
{
y = sayi * sayi
return y
}
</script>
</head>
<body>

<script language="JavaScript">
var a=1
do
{
document.write("<b>" + a + "</b> sayısının karesi = <b>" + kare(a) + "</b><br>")
a++
}
while (a < 101)
</script>

</body>
</html>




Yukarıdaki uygulama 1`den 100`e kadar tüm sayıların karesini buluyor. Sizler bu yazılımı hem görsel hem de işlevsel olarak geliştirebilirsiniz. 

"for" Döngüsü 

Şimdi sıra for... döngü deyimine geldi. Bu deyimin yapısı aşağıdaki gibidir: 

for ( başlama noktası; koşul ifadesi; adım ifadesi) 

İŞLEMLER 


for döngüsünü belirleyen üç ifade var: başlama noktası, koşul ifadesi, adım ifadesi. Başlama noktası, döngünün hangi sayıdan başlayacağını belirler: i = 0 gibi. Koşul ifadesini daha önceki deyimlerden biliyoruz; koşul ifadesi aracılığıyla döngü devam eder: i <= 10 gibi. Adım ifadesi ise döngünün kaçar kaçar sayacağını belirleriz. Örneğin birer birer saymasını istiyorsak i++ değerini, ikişer ikişer saymasını istiyorsak i+=2 değerini kullanırız. Bu adımlar artırma (pozitif) yönlü olmak zorunda değil, azalma (negatif) yönlü de olabilir: i-- gibi. 

Örneğin 75`den 1000`e kadar 25`er adımlı sayan bir yazılım geliştirelim. 


Javascript:
<html>
<head>
<title>Döngü Deyimleri</title>
</head>
<body>

<script language="JavaScript">
var i
for (i = 75; i <= 1000; i += 25)
{
document.write("Sayı = " + i + "<br>")
}
</script>

</body>
</html>



Şimdi de 1000`den geriye doğru 10`ar 10`ar -100`e kadar sayalım. 


Javascript:
<html>
<head>
<title>Döngü Deyimleri</title>
</head>
<body>

<script language="JavaScript">
var i
for (i = 1000; i >= -100; i -= 10)
{
document.write("Sayı = " + i + "<br>")
}
</script>

</body>
</html>



Koşul deyimlerini kullanarak bir döngü yaratmak da mümkün. Ama bunun için etiket kullanmalıyız. Etiketler yazılım kodları içindeki çeşitli başlama noktalarıdır. Etiketin ismi ve ":" işaretinden oluşur, örneğin BASLA: gibi. Yazılımın BASLA: ifadesine gitmesi ve oradan devam etmesini istiyorsak goto BASLA komut ve ifadesini kullanırız. Bir koşul deyimi ve etiketle nasıl döngü oluşturulduğunu aşağıdaki uygulamayla gösterebiliriz. 


Javascript:
<html>
<head>
<title>Döngü,</title>
</head>
<body>

<script language="JavaScript">
var i=75
DONGU:
if (i <= 1000)
{
document.write("Sayı = " + i + "<br>")
i += 25
goto DONGU
}
</script>

</body>
</html>


Döngüler bir işlemi istediğimiz kadar tekrar etmeye yarayan, programların ayrılmaz bir parçasıdır. Java ve C`de de döngü ifadeleri JavaScript`in aynısıdır. Diğer dillerde ise birazcık değişik ama çok benziyor. Diğer sayfalarda görüşmek üzere.


KAYNAK: http://www.bilgisayardershanesi.com/bilgisayar_dersleri/java-script-dongu-denetimi.html

Java Script Akış Denetimi

Her programda olduğu gibi, JavaScript`te de koşul deyimleri vardır. Bu deyimler Java ve C`de aynen kullanılmakta olan if...else deyimi ve switch deyimi. Bu deyimleri bilmeyen arkadaşlarımız için bu sayfayı hazırladım. 

"if... else..." Koşul Deyimi 
İlk koşul deyimimiz: if...else... (Türkçesi: eğer öyleyse...değilse...). Yazılımda veriler değerlendirilirken bir yol ayrımına, elemeye gidilebilir. Mesela belli bir değerin altındakiler için başka işlemler, üstündekiler için başka işlemler yapılabilir. Verileri böyle bir elemeye tabi tutmak için if...else... koşul deyimini kullanabiliriz. Bu deyimin genel yapısı şöyledir: 



if (koşul ifadesi) işlem 
else işlem 

birden fazla işlem söz konusuysa, 

if (koşul ifadesi) 

İŞLEMLER 

else 

İŞLEMLER 


Koşul İfadeleri 


Koşul ifadesi parantez içine yazılır. Koşul ifadesi verilerin izleyeceği akışı belirler. Bu koşula uyan verilere koşul ifadesinden sonraki işlemler, bu koşula uymayan verilere ise else ifadesinden sonraki işlemler uygulanır. Koşul ifadelerini belirtirken aşağıdaki işaretlerden yararlanırız: 
== Eşitlik koşulunu sorgular. 
degisken == 5 
!= Eşit olmama koşulunu sorgular. 
degisken != 5 
> Büyük olma koşulunu sorgular. 
degisken > 5 
>= Büyük veya eşit olma koşulunu sorgular. 
degisken >= 5 
< Küçük olma koşulunu sorgular. 
degisken < 5 
<= Küçük veya eşit olma koşulunu sorgular. 
degisken <= 5 

Koşul deyimleri, koşul ifadesine uyanlara işlem yapar. Uymayanlara ise else kodundan sonraki işlem yapılır. else kodu kullanma zorunluluğu yoktur, kullanılmıyorsa koşul ifadesine uymayanlar, koşul deyimine nasıl girmişlerse öyle çıkarlar. 


Javascript:
<html>
<head>
<title>Koşul Deyimleri</title>
<script language="JavaScript">
//İlk fonksiyonu hazırlıyoruz.
function kabul()
{
alert("İçeri girebilirsin.");
document.write("<h1>Barımıza Hoşgeldiniz!</h1>");
}
//İkinci fonksiyonu hazırlıyoruz.
function red()
{
alert("Hoop ufaklık. Bas geri!");
document.write("<h1>18 yaşından küçükler giremez!</h1>");
}
</script>
</head>
<body>

<script language="JavaScript">
var yas=13;
if (yas >= 18) kabul()
else red()
</script>

</body>
</html>



Bu uygulamada iki fonksiyon var: kabul() ve red(). <body> bölümündeki JavaScript kodları arasında yas değişkenini ve if...else... koşul deyimini göreceksiniz. Koşul deyimi yas değişkeni 18`e eşit veya 18`den büyükse kabul() fonksiyonunu, değilse red fonksiyonunu çağırıyor. Burada yas değişkenini kod içinde 13 olarak tanımladık, bu durumda red() fonksiyonu çağrılır ve barın kapısından geri çevrilirsiniz. 

"switch" Koşul Deyimi if...else... koşul deyiminde yol ayrımı söz konusudur ve akış ikiye ayrılır. Şimdi göreceğimiz switch kodu ise akışı ikiden fazla sayıya ayırır. Yani birden fazla koşul sözkonusudur. switch koşul deyiminin genel yapısı şöyledir. 


switch (ifade) 

case değer1: işlem1 
break 
case değer2: işlem2 
break 
... 
case değerN: işlemN 
break 
default: işlem 


birden fazla işlem söz konusuysa, 
switch (ifade) 

case değer1 : 

işlemler 

break 
case değer2 : 

işlemler 

break 
... 
case değerN : 
işlemler 

break 
default: 

işlemler 



Bu koşul eyleminde değişken switch(...) kısmına yazılır. Sonra değişkenin alabileceği değerler case: (durum) kodlarının yanlarına yazılarak koşul ifadesi yaratılır ve alttaki işlemler uygulanır. Eğer case: kodlarından hiçbiri değişkenin taşıdığı değeri tutmuyorsa, default: kodunun altındaki işlemler uygulanır. (default kodunun yazılması zorunlu değildir; else kodunun yazılmasının zorunlu olmadığı gibi) Buradaki break (kes) komutu önemlidir. İşlemlerin altına break kodu yazmazsak, bir alttaki case (durum) koşuluna ait işlemler de yapılır. break kodunu işlemlerin altına koyarsak, işlemler bitince bir alttaki case koşulunun işlemlerine geçilmez ve program switch deyiminin sonundan devam eder. Buradan hareketle aynı işlemlere tabi tutulacak koşul ifadelerini alt alta yazın ve bu ifadelerden en altında olanın işlemlerine break komutunu uygulayın. Aşağıdaki uygulama konunun anlaşılmasına yardımcı olacaktır. 


Javascript:
<html>
<head>
<title>Koşul Deyimleri</title>
<script language="JavaScript">
//Fonksiyonu hazırlıyoruz.
function karne(x)
{
switch(x)
{
case 10:
case 9: harf="A"
break
case 8: harf="B"
break
case 7:
case 6: harf="C"
break
case 5: harf="D"
break
default: harf="E"
}
return harf
}
</script>
</head>
<body> 


<script language="JavaScript">
var isim = "Ali", puan = 8, y
y = karne(puan)
document.write(isim + " adlı öğrencinin aldığı not: " + y)
</script>

</body>
</html>



Bu uygulama bizim zamanımızdaki BAL (Bornova Anadolu) not sistemini konu ediniyor; halâ böylemi bilmiyorum. 10 üzerinden alınan notlar, harfli sisteme çevriliyor. Örneğin on üzerinden 7 veya 6 notu alanlar, "C" almış oluyor. (D`den sonra en sevdiğim nottu.) 

Akış denetimi konumuz burada sona erdi. İki deyimden birer uygulama yaptım; daha fazlasını da yapmak isterdim ama henüz pek birşey öğrenmedik. İleri derslerin uygulamasında telafi ederiz.

KAYNAK:  http://www.bilgisayardershanesi.com/bilgisayar_dersleri/java-script-akis-denetimi.html

Java Script Değişkenler

Değişken, içinde değerler saklayabileceğiniz bir programlama aracıdır. Değişkenlerin sakladığı değer kod sayfaları boyunca değişebilir, birbirine aktarılabilir. Değişkene başka bir değer atayabilirsiniz veya değişkenin sakladığı değeri program içinde kullanabilirsiniz. Değişkenler genellikle programın başlangıcında isimlendirir; böylece bu isimlerle değişkeni çağırabilir, değişkenin taşıdığı değeri kullanabilirsiniz. Not: Değişkenin ismi program boyunca değişmez, ancak taşıdığı değer değişebilir. 


Değişken İsimleri

Değişkenleri isimlendirirken dikkat etmemiz gereken bazı kurallar vardır: 

* Değişken ismi harf, rakam veya "_" (altçizgi) karakterlerinden oluşabilir. 
* Değişken isminin ilk karakteri bir harf veya "_" (alt çizgi) işareti olmalıdır. (vol_html23 gibi) 
* JavaScript küçük harf, büyük harf ayrımı yapar. Mesela değişken isminiz DIAZ ise, bu değişkeni hep böyle büyük harflerle yazmak zorundasınız. diaz yazarsanız, gözatıcı bunu farklı bir değişken olarak okur. 
* Değişken isimlerinin uzunluğu 255 karakter kadar olabilir. 
* Değişken isimleri içinde diğer semboller (+, -, /, boşluk, vb.) yer alamaz. 
* Değişken isimlerinde İngilizce`de olmayan karakterleri (ş, ç, ö, vb.) kullanmayınız. (Genellikle yeni kullanıcılar bu kuralı her zaman anımsamıyorlar. 

Değişkenlere Değer Verme 
Değişkenlere değer verirken, değişken her zaman sol tarafta yer alır. Mesela sayi değişkenine 15 değerini vereceksek, şöyle yazarız: 

sayi= 15 

Değişkenler birbirinin değerini de alabilir. Her zaman sola yazılan ifade, sağdaki değeri alır. Örneğin şu iki değişkene bakalım: 

sayı1= 5 
sayı2= 10 
sayı1= sayı2 

Burada sayi1 ve sayi2 isimli iki değişken söz konusu. Önce sayi1 isimli değişkene 5 değeri veriliyor. Sonra sayi2 değişkenine 10 değeri veriliyor. Sonra sayi1 değişkenine sayi2`nin değeri verilerek, sayi1`in değeri değiştiriliyor. Böylece sayi1= 10, sayi2= 10 oluyor. Eğer sayi2 = sayi1 ifadesi olsaydı (sayi2 solda yeralsaydı), sayi1`in değeri sayi2`ye verilmiş olacaktı. Bu durumda sonuç değişik olurdu: sayi1= 5, sayi2= 5 

Yukarıdaki yazdıklarımızı bir uygulamayla gösterelim: 

Javascript:
<html>
<head>
<title>JavaScript Uygulaması</title>
</head>
<body>

<script language="JavaScript">
sayi1=5
sayi2=10
sayi1= sayi2
document.write(sayi1)
document.write("<br>")
document.write(sayi2)
</script>

</body>
</html>



Dikkat ederseniz document.write(...) kodunun parantez arasına değişkenleri yazarken, tırnak işareti kullanmadık. Çünkü değişkenler HTML elemanı değil, JavaScript elemanı. Bu üç kod yerine şöyle yazabilirdik: document.write(sayi1 + "
" + sayi2). İsterseniz değişkenlerin yerini değiştirelim (sayi2 = sayi1 yapalım): 


Javascript:
<body>

<script language="JavaScript">
sayi1=5
sayi2=10
sayi2= sayi1
document.write(sayi1 + "<br>" + sayi2)
</script>

</body>
</html>



Değişken Tanımlama ve Değişken Türleri 
Yukarıdaki uygulamalarımızda değişkenlere değer verdik ama onları tanımlamadık, tanımlamak zorunda da değiliz. Ancak bu değişkenleri var kodu ile baştan tanımlamak doğru bir yaklaşımdır. (Başka program bilenlere not: Eğer baştan tanımlamazsak, değişkenler global olur. Başka program bilmeyenlere not: Önceden tanımlamakta büyük kerametler var.) Aşağıdaki üç durum da aynı şeyi ifade ediyor: 

var sayi1 
var sayi2 
sayi1=5 
sayi2=10 

veya, 

var sayi1, sayi2 
sayi1=5 
sayi2=10 

veya, 

var sayi1=10, sayı2=5 

Bu şekillerde değişkenleri tanımlayabiliyoruz. Şimdiye kadar değişkenlere hep sayısal değerler verdik. Oysa JavaScript değişkenleri 5 çeşit değer alabiliyor: 
Sayısal Değerler Aritmetik işlemler yapılabilen her türlü sayısal değer: tam sayı, ondalık sayı, negatif sayı. 
sayi = 32 
Alfanümerik Değerler Aritmetik işlemler yapılmayan, metinsel özellikler taşıyan değerler. 
sev = "Cameron Diaz" 
Onay Değerleri Sadece doğru veya yanlış değerlerini kabul eden değerler. Doğru ifadesi 1 ile, yanlış ifadesi 0 ile ifade ediliyor. (Ecnebiler boolean diyor.) 
cevap = 1 
Fonksiyon Değeri Değişkenler tıpkı sayılar ve metinler gibi fonksiyonları da saklayabilmektedir. 
yap = selam() 
Nesne Değeri Değişkenler HTML nesnelerini (düğme, metin, resim, vb.) değer olarak saklayabilmektedir. (Özellikle gelişmiş JavaScript örneklerimizde çok kullanacağız.) Unutmayalım ki JavaScript nesneye dayalı programdır. 
eleman = dugme 

Değişkenler gerek yapısal gerek nesneye dayalı programlarda büyük önem taşır. Daha önce hiç programcılıkla uğraşmamışlar kişileri düşünerek anlattım bu sayfayı. Değişkenleri tanıyan arkadaşların sıkılmaması için olabildiğince sade yazdım, umarım başarmışımdır.

KAYNAK:  http://www.bilgisayardershanesi.com/bilgisayar_dersleri/java-script-degiskenler.html