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.