var ile Değişken Deklare Etme - Eski Yöntem

Eski kullanım olan var deklaratif sözcüğü ile de değişken bildirebilirsiniz. Fakat var ile let'in birbirinden bazı farkları olduğunu bilmek gerekir. var bildirimi blok ve kapsam tanımaz. Hangi kapsamda bildirildiğine bakılmaksızın ana kapsamda bildirilmiş gibi olur ve her kapsamda aynı bellek birimini temsil eder. Yukarıda let ile yaptığımız örneği var ile yaparsak farklardan birini anlamış oluruz.

var isim = 'Script';
{
    var isim = 'Java';
    alert(isim); // İlk bu satır çalışır. 'Java'
}
alert(isim); // Sonra bu satır çalışır. Yine 'Java'

var sözcüğünün blok ve kapsam hassasiyeti yoktur. Değişkenlerin kapsam fark etmeksizin aynı bellek birimindeki değeri temsil etmesi yapılan her değişikliği bir öncekinin üzerine yazacağı için yapmak istediğinizden farklı sonuçlar görebilirsiniz fakat hata fırlatılmaz. Çünkü çalışma mantığı bu şekildedir.

var sözcüğünün let sözcüğünden bir farkı da var ile bildirilen bir değişkenin sonradan da deklare edilebilmesidir. Zaten kapsam tanımadığı için bütün bildirimler ana kapsam olarak ele alınır. Çok sayıda bildirim hata olarak fırlatılmaz. Dolayısıyla programcı aynı değişken ismini daha önce kullandığını fark edemez. Tekrar bildirince aynı bellek birimini kullanır ve eski değerin üzerine yazar.

var isim = 'Java';
// kodlar
var isim = 'Script';
// kodlar
{
    var isim = 'Programlama Dili';
    // kodlar
}

alert(isim); // 'Programlama Dili' olarak görünür.

var ile let arasındaki bir fark da şudur. let ile bildirdiğiniz bir değişkeni bildirimden önce kullanırsanız hata fırlatılır. Fakat var ile bildirdiğiniz bir değişkeni bildirimden önce kullanırsanız hata fırlatılmaz. Sadece 'undefined' (tanımlanmamış) bir verisi olur. Deneyiniz.

alert(isim); //Hata fırlatılmaz. 'Undefined' değeri alınır.
var isim = 'Javascript';
alert(isim); //'Javascript' değer alınır.
var isim = 'Programlama Dili';
alert(isim); //'Programlama Dili' değer alınır.

Last updated