Javascript ile üç farklı şekilde değişken tanımlayabilmekteyiz. Bunlar var-let ve const tur. Bunlardan
var ile tanımladığımız değişken türü global bir şekilde tanılanmaktadır. Yani tanımladığı blokğun altındaki kod bloklarında
da kullanılabilmektedir.let ile tanımlamalar ise sadece tanımlandığı blokta kullanılmaktadır. const ile yapılan tanımlamlar ise
sabit değişkenlerde değiştirilemezler. Aralarındaki en büyük fark budur. Önce var ile örnek bir tanılmlama yapalım.
1 2 3 4 5 6 7 | var deger=5; function artir(){ deger++; } artir(); console.log(deger); //console çıktısı : 6 |
Yukarıdaki uygulamda program başında tanımlamış olduğumuz deger değişkenini aynı zamanda artir fonksiyonu içersinde kullanabildik. Bu durum
var ile tanımlan değişkenlerin alt code bloglarında da kullanıldığını göstermektedir. Dikkat edilmesi gereken husus. Function
bloğunda tanımlanan bir değişkenin üst blokta kullanılamıyor olmasıdır.
1 2 3 4 5 6 7 | function artir(){ var deger=5; } artir(); deger++; console.log(deger); //console çıktısı : js.html:36 Uncaught ReferenceError: deger is not defined |
Anlaşılacağı gibi function içersinde var ile tanımladığımız bir değişkeni function dışında kullanamadık. var ile yine bir değişkenin adını ve değerini tanılmadıktan sonra tipinide sonradan tanımlayabiliriz.
1 2 3 4 5 6 7 8 | deger=5; var deger; function artir(){ deger++; } artir(); console.log(deger); //console çıktısı : 6 |
Yukarıdaki örnekte ad ve değer tanımlaması yaptığımız bir değişkenin sonradan türünü tanımlayaraka fonksiyon içerisinde kullandık.
Aynı zamanda var ile tanımladığımız bir değişkeni tekrar tanımlayabiliriz.
1 2 3 4 5 6 7 8 | var deger=5; var deger=8; function artir(){ deger++; } artir(); console.log(deger); //console çıktısı : 9 |
let ile tanımlamalar ise local değişken olarak kalmaktadır. Sadece tanımlanmış olduğu blok içerisinde kullanılır.
1 2 3 4 5 6 7 8 9 | for (let index = 0; index < ["a","b","c"].length; index++) { console.log(index) } console.log(index); //console çıktısı : // 0 // 1 // 2 // Uncaught ReferenceError: index is not defined at js.html:67:21 |
Yukarıda for içerisinde tanımlamış olduğumuz index değişkeni for blokları dışında kullanmaya çalıştığımızda hata aldık.
index değişkenini var ile tanımladığımızda hata almayıp son index değerini almış olacağız. Burdan anlaşılıyor ki
let ile tanımlamlar local değer tanımlamalarıdır. Block dışına çıkmadan imha olmaktadır.
let dikkat etmemiz gereken diğer bir husus ise tanımlanana bir değişkenin tekrardan tanımlanamıyor olmasıdır.
1 2 3 4 5 6 | let y=5; let y=5; console.log(y); //console çıktısı : // Uncaught SyntaxError: Identifier 'deger' has already been declared (at js.html:79:14) |
var ile tanımladığınız bir değişkeni tekrardan aynı isimde tanımlayıp değer ataması yapabilirsiniz.
Gelelim const ile yapılan tanımlamalara. Bu tanımlamada ise bir sabit tanımlanmaktadır. Yani tanımlanan değişkenin
değeri tekrardan değiştirlemez (immutable) ve tekrandan tanımlamaz.
Bir sabit değişken tanımladık.
1 2 3 | const deger=5; console.log(deger); //console çıktısı : 5 |
Şimdi tanımlanana bir sabiti tekrar tanımlayalım.
1 2 3 4 | const deger=5; const deger=2; console.log(deger); //console çıktısı : Uncaught SyntaxError: Identifier 'deger' has already been declared (at js.html:97:15) |
Tekrar tanımlamamıza izin vermedi. Hata çıktısı oldık. const tanımlamalarında dikkat etmemiz gereken diğer bir husus ise
block scope olmasıdır. Yani tanımlandığı bloğun dışına çıkamıyor olmasıdır.
Evet bu yazımızda Javascript değişken tanımlama tiplerini göremüş olduk. var – let – const arasındaki farkları kavrayıp nerelerde hangi amaçlarla tanımlama yapmamız gerektiğini anldık. Sitemiz reklamlarına tıklayarak bağış yapabilirsiniz. Faydalı olması dileğiyle başarılar.
