Javascript Eğitim Dersleri #004

20 Mart 2008, Perşembe

Run-Time Javascript

Javascript, Client-Side, yani istemci yarafında çalışan bir dil olduğu için, genelde, sayfa yüklendikten sonra gerekli fonksiyonları tetikleriz. ( <body onload="myfunction();"> ) Bazen de diğer event’leri kullanırız. ( onclick , onmouseover gibi ) Eğer istersek, sayfanın yüklenmesini beklemeden javascript’i run-time embed edebiliriz.

  1. <body>
  2.  <div>
  3.   <script type="text/javascript">
  4.   //<![CDATA[
  5.    document.write( 'Merhaba' );
  6.   //]]>
  7.   </script>
  8.  </div>
  9. </body>

Sayfa yüklenirken, run-time javascript kod’u execute edilecektir.

Array

Amacımız, userID’yi kullanıcıdan alıp, ilgili array’in içinden gereken bilgiyi okumak. Eğer kullanıcı olmayan bir index girerse bunu kontrol etmek.

  1. var aryUserNames = Array( 'vigo' , 'perper' , 'burak' , 'iso' , 'derek' );
  2. var aryUserEmails = Array( 'vigo@bilgi.edu.tr' , 'perper@hede.com' , 'burak@ddd.com' , 'iso@dedec.com' , 'derek@xx.com' );
  3. var askUserID = window.prompt( 'User Index ?' , '0' );
  4. if( askUserID )
  5. {
  6.  getUserInfo( askUserID );
  7. }
  8.  
  9. function getUserInfo( intUserIndex )
  10. {
  11.  intUserIndex*= 1; // string'i numerik'e çevirdik!!!
  12.  
  13.  if( aryUserNames.length >= intUserIndex )
  14.  {
  15.   window.alert( 'Hatalı index!!!' );
  16.   return;
  17.  }
  18.  var strUserName = aryUserNames[ intUserIndex ];
  19.  var strUserEmail = aryUserEmails[ intUserIndex ];
  20.  var strOut = 'Kullanıcı Adı : ' + strUserName + '\nKullanıcı E-Mail : ' + strUserEmail;
  21.  
  22.  window.alert( strOut );
  23. }

Array ve Date() Nesnesi

Amacımız, client’in tarih/saat bilgisine göre hangi günde olduğumuzu bulmak. Bunun için Date() nesnesini kullanıyoruz. Pek çok metod’u olan Date() ile ilgili bilgileri dökümandan bulabilirsiniz.

Metodlar

getDate , getDay , getFullYear , getHours , getMilliseconds , getMinutes , getMonth , getSeconds , getTime , getTimezoneOffset , getUTCDate , getUTCDay , getUTCFullYear , getUTCHours , getUTCMilliseconds , getUTCMinutes , getUTCMonth , getUTCSeconds , getVarDate , getYear , setDate , setFullYear , setHours , setMilliseconds , setMinutes , setMonth , setSeconds , setTime , setUTCDate , setUTCFullYear , setUTCHours , setUTCMilliseconds , setUTCMinutes , setUTCMonth , setUTCSeconds , setYear , toGMTString , toLocaleString , toUTCString , toString , valueOf , parse , UTC

Genel standart olarak, haftanın günü’nü istediğimiz zaman javascript bize ilk gün PAZAR olacak şekilde SIFIR ( 0 ) indeksli bir değer döner. Yani eğer günlerden PAZAR ise bize 0 döner. Türkçe / Türkiye için düşündüğümüzde, haftanın ilk günü PAZARTESİ olduğu için sorunla karşılaşırız. Bu sorunun 2 çözümü vardır;

  1. Ya kendi array’imizi Pazar’dan başlatırız,
  2. Ya da kontrol yapmamız gerekir.

Aşağıdaki kod, kontrol yapma metoduyla hazırlanmıştır.

  1. var aryDayNames = Array( 'Pazartesi' , 'Salı' , 'Çarşamba' , 'Perşembe' , 'Cuma' , 'Cumartesi' , 'Pazar' );
  2. var objToday = new Date();
  3. var intTodaysWeekDay = objToday.getUTCDay();
  4. if( intTodaysWeekDay == 0 )
  5. {
  6.  intTodaysWeekDay = 6;
  7. }
  8. else
  9. {
  10.  intTodaysWeekDay--;
  11. }
  12. var strDayName = aryDayNames[ intTodaysWeekDay ];
  13. window.alert( strDayName );

Eğer ilk yöntemi kullansaydık;

  1. var aryDayNames = Array( 'Pazar' , 'Pazartesi' , 'Salı' , 'Çarşamba' , 'Perşembe' , 'Cuma' , 'Cumartesi' );
  2. var objToday = new Date();
  3. var intTodaysWeekDay = objToday.getUTCDay();
  4. var strDayName = aryDayNames[ intTodaysWeekDay ];
  5. window.alert( strDayName );

Ay, Yıl, Saat, Dakika, Saniye

  1. var aryDayNames = Array( 'Pazar' , 'Pazartesi' , 'Salı' , 'Çarşamba' , 'Perşembe' , 'Cuma' , 'Cumartesi' );
  2. var aryMonthNames = Array( 'Ocak' , 'Şubat' , 'Mart' , 'Nisan' , 'Mayıs' , 'Haziran' , 'Temmuz' , 'Ağustos' , 'Eylül' , 'Ekim' , 'Kasım' , 'Aralık' );
  3. var objToday = new Date();
  4. var intTodaysWeekDay = objToday.getUTCDay();
  5. var intTodaysMonth = objToday.getUTCMonth();
  6. var intTodaysYear = objToday.getUTCFullYear();
  7. var intTodaysDate = objToday.getUTCDate();
  8. var intTodaysHour = objToday.getHours();
  9. var intTodaysMinute = objToday.getMinutes();
  10. var intTodaysSecond = objToday.getSeconds();
  11. var strDayName = aryDayNames[ intTodaysWeekDay ];
  12. var strMonthName = aryMonthNames[ intTodaysMonth ];
  13. document.write( intTodaysDate + ' - ' , strMonthName + ' - ' + intTodaysYear + ', ' + strDayName + ' ' + intTodaysHour + ':' + intTodaysMinute + ':' + intTodaysSecond );