Javascript Eğitim Dersleri #001

20 Şubat 2008, Çarşamba

Javascript’e Giriş

Javascrit’in temel özellikleri :

  • C’den türemiş bir script dilidir.
  • PHP’ye çok benzer.
  • Flash Action Script’le neredeyse tıpa tıp aynıdır.
  • 100% olmasa da Object Oriented Programming’e ( OOP | Nesne Yönelimli Programlama ) yatkındır.
  • JAVA ile hiç bir alakası yoktur!
  • CSS gibi include edilebilir. ( Local | Remote )
  • Aynen CSS’de olduğu gibi IN-LINE yada EMBEDDED olarak kullanılabilir.
  • Web sayfaları için kullanıldığı gibi, başka alanlarda da kullanılabilir. ( Firefox Chorome API )
  • Büyük / Küçük Harf’e duyarlıdır. ( Case-Sensitive ). Değişken tanımlarken; userName ile UserName FARKLI değişlenlerdir.
  • Önceden tanımlı kelimeleri vardır. ( Reserved Keywords ). Tanımlayacağınız değişkenler bu kelimelerden olamaz.

Web için kullanıldığında Client-Side yani istemci-tarafı’nda çalışan, html ile birlikte istemcinin makinesine inen ( browser javascript dosyalarını download eder ve yorumlar ) ve render edilmiş html’i kontrol etmeye yarıyan bir sistemdir.

Tavsiye edilen kullanım, html’de <head>’in içerisinde, CSS gibi include edilmesi, sayfa yüklendikten sonra ( body’nin onload event’i ) tetiklenmesidir.

Veri Tipleri ( Data Types )

Tüm bilgisayar dillerinde olduğu gibi, komutlar’dan ve değişkenlerden oluşan bir yapı bulunur. Değişkenlerin tipleri vardır. Bunlar :

  • String : Yazı / Text ( Alfanumerik )
  • Number : Sayısal ( Numerik )
  • Boolean : Mantıksal ( true / false )
  • Object : Nesne
  • Array : Dizi
  • Null : Boş
  • Undefined : Tanımsız / Bilinmeyen

Variables ( Değişkenler )

İşlem yapabilmek için elimizdeki bilgiyi atadağımız şey’e değişken deriz. Adından da anlaşılacağı gibi bu şey, daha sonra işlem yaparak, içinde bulunan değerin değiştirilmesine izin verir. Bu bakımdan da adı değişebilen anlamına gelen Değişken yani Variable’dır.

Kuralına uygun kod yazmak için, kod içinde kullanıcağımız değişkenleri deklare etmemiz ( tanımlamamız ) gerekir. Bunun için var anahtar kelimesini kullanırız.

  1. var myNumber = 5; // tipi Number olan değişken
  2. var myText = 'Hello'; // tipi String olan değişken
  3. var userLogin = true; // tipi Boolean olan değişken
Görüldüğü gibi adı var olan yada true olan değişken tanımlayamayız. Çünki bunlar reserved-keywords’dür.

Bir yazılım dilini öğrenmenin en kolay yolu, önce ekrana birşeyler yazdırmaktan geçer. B.A.S.I.C dilindeki print komutunu hatırlayalım. Bu işi Html/Javascript dünyasında yapmak için Browser’ın bazı özel komutlarını kullanmamız gerekiyor;

Örnek Include...

Javascript’in <head> içinde include edilmesi

Örnek Embed...

Javascript’in <head> içinde embed edilmesi

Örnek In-Line...

Javascript’in in-line yazılması

D.O.M ( Document Object Modelling ) : Intro

Bundan sonra pek çok kez bu kelimeyi göreceğiz. DOM hayatımızın bir parçası olacak!!!. Html / Css derslerinde, Html sayfasının ana yapısından bahsetmiştik. <head> ve <body>’nin önemini görmüştük.

Bezer yapı DOM’da da var. En dışta window bulunuyor. Bu aslında kodun çalıştığı pencere. Yani browser’ın ta kendisi. DOM’la ilgili çok detaylı konularımız olacak. Şuan için kabaca ne olduğuna dair bir ipucu veriyorum. Keza asıl amacımız ekrana birşeyler yazdırmak. Bu bakımdan, DOM’un çok küçük bir parçası ile ilgiliyiz şuanda.

window.alert ( metod )

En basit haliyle ekrana birşey yazdırmak için bunu kullanırız. Bu aslında adın da anlaşılacağı gibi, bir uyarı mesajı yani alert’dir. Çalıştıktan sonra sizden geri cevap bekler. Bu cevap işide “OK” düğmesine tıklanarak yapılır.

window.alert( String );
  1. window.alert( 'Hello World' );
  2.  
  3. var myText = 'Merhaba';
  4. window.alert( myText );

typeof ( operatör )

Elimizdeki değişkenin / nesnenin tipini anlamımızı sağlar. Bize tip bilgisi döner. String , Number , Object gibi...

stringVariableType = typeof( VARIABLE );
  1. window.alert( typeof( 'Hello World' ) ); // string
  2. window.alert( typeof( 5 ) ); // number
  3. window.alert( typeof( new Image() ) ); // object

HTML ve D.O.M Yapısı

HTML ve D.O.M Yapısı

window.prompt ( metod )

Browser yardımı ile kullanıcıdan text bilgi girişi ( text input ) almak için kullanılır. Eğer kullanıcı herhangi bir şey girmiş ise ( sayı yada text ) geriye girilmiş olan değer string olarak döner. Eğer “Cancel” düğmesine basılırsa yada “ESC” tuşuna basılırsa false döner!

objectVariable = window.prompt( [stringMessage] [, stringDefaultValue] );

stringMessage
Mesaj
stringDefaultValue
( Opsiyonel ) Gerekiyorsa varsayılan değer ( Eğer tanımlanmazsa IE’de “undefined” yazar. )
  1. var userInput = window.prompt( 'Bir sayı girin' , 5 );
  2. if( userInput ) // Eğer giriş varsa
  3. {
  4.  window.alert( userInput ); // Girilen sayı yada ne girildiyse
  5. }

window.confirm ( metod )

Doğrulamak / oynaylamak anlamındadır. Browser, kullanıcıya “OK” / “CANCEL” sorusunu sorar. OK’e tıklandığında bu TRUE, CANCEL’a tıklandığında da bu FALSE anlamındadır.

booleanConfirmed = window.confirm( [stringMessage] )

stringMessage
( Opsiyonel ) Eğer bir mesajla birlikte sormak isterseniz.
  1. var blnContinue = window.confirm( 'Devam etmek için tıklayın' );
  2. if( blnContinue ) // Eğer OK’e tıklandıysa...
  3. {
  4.  window.alert( 'Devam ediyoruz!' );
  5. }

Aritmetik İşlemler

4 İşlem : Toplama / Çıkartma / Çarpma / Bölme

+ , - , * , / işaretleri ile aritmetik işlemleri yaparız. Parantezli işlem yaparken sırasıyla, Çarpma ( * ) , Bölme ( / ) , Toplama ( + ) ve Çıkartma ( - ) şeklindedir. Matematik işlemlerinin yapılabilmesi için numeric değerlerle ( integer / float gibi ) işlem yapmak gerekir. Sayısal bir değerle yazısal ( string ) bir değeri topladığınızda sonuç string olur! İşlemleri parantezlerle gruplarsanız önce parantez içindeki ifade işlenir, daha sonra işlem üstünlüğüne göre sıradaki işlem yapılır.

  1. var result = 5 + 4; // 5+4 = 9
  2. var result = 5 * 4; // 5*4 = 20
  3. var result = 5 - 4; // 5-4 = 1
  4. var result = 10 / 2; // 10/2 = 5
  5.  
  6. var a = 5;
  7. var b = 'ali';
  8. window.alert( a + b ); // 5ali
+ işareti aynı zamanda concatenation için de kullanılır. string’leri birbirne eklemek bir concatenation işlemidir.
  1. var stringUserName = 'vigo';
  2. var stringEmail = stringUserName + '@bilgi.edu.tr';
  3. window.alert( stringEmail ); // vigo@bilgi.edu.tr

isNaN ( metod )

is Not a Number yani “Eğer sayı değilse” anlamındadır. Eğer string ise TRUE döner. Eğer girilen şeyin sayı olmasını istersek, isNaN bize FALSE dönmelidir.

  1. var x = 5;
  2. window.alert( isNaN( x ) ); // false yani bu bir sayı

İşimizi garantiye almak için, sadece numerik değerlerle çalıştığımıza emin olmak için bu fonksiyonu kullanırız. İleriki derslerde prototype konusuna geldiğimizde, string objesine isNumber diye bir metod ekleyip bu işi daha kolay yapacağız.

  1. var x = 'vigo';
  2. window.alert( isNaN( x ) ); // true yani bu bir string

Keza, herzaman typeof’u kullanarak, elimizdeki şeyin cinsini öğrenebiliriz.

Diğer İşlemler

Arttırma ( ++ ) , azalttırma ( -- ) , Mod ( % )

  1. var x = 5;
  2. x++; // x’in değerini 1 arttır.
  3. window.alert( x ); // 6
  1. var x = 5;
  2. x+= 4; // x’in değerini 4 arttır.
  3. window.alert( x ); // 9
x++; ile x+= 1; aynı şeydir.
  1. var x = 5;
  2. x--; // x’in değerini 1 azalt.
  3. window.alert( x ); // 4
  1. var x = 5;
  2. x-= 4; // x’in değerini 4 azalt.
  3. window.alert( x ); // 1

+= , *= , /= , -= aynı mantıkta işler.

Modülo

mod kalanı verir bize. Örneğin 5’i 3’e böldüğümüzde 1 sonuç, 2 ise kalandır.

Kullanıcı bir sayı girsin, sayı eğer 5’in katı ise ekranda bir mesaj çıkartalım! Bunun için modulo ( yani mod ) kullanırız.

  1. var intUserInput = window.prompt( 'Bir sayı girin' );
  2. if( intUserInput % 5 == 0 )
  3. {
  4.  window.alert( 'Sayı 5\'in katı ' );
  5. }