JavaScript: var, let, const
Merhabalar, bu yazımda ES6 ile birlikte gelen, değişken tanımlamak için kullanılan let
ve const
kavramlarını açıklayacağım. Bununla birlikte değişken tanımlamak için kullandığımız var
ile farklarını açıklıyor olacağım.
Bu kavramları anlayabilmek için Scope kavramını anlamak gerekiyor.
Scope Nedir ?
Scope kelime anlamı olarak Türkçede “Kapsam” anlamına gelir. Nedir bu scope (kapsam) ? JavaScript uygulamamız çalışırken değişkenimizin nerelerde var olduğunu (çalıştığını) ifade eden bir kavramdır. JavaScriptte üç adet scope bulunur;
1. Global Scope
Burada tanımlı olan değişkenlere her yerde ulaşılabilir ve kullanılabilir durumdadır.
2. Function Scope
Sadece fonskiyonların içinde var olabilen ve kullanılabilen scope’lara function scope diyoruz.
3. Block Scope
if, switch koşulları yada for ve while döngülerinin içindeki alanlardır. Genel olarak konuşacak olursak {}
içinde yer alan alana block scope diyebiliriz. ES6'da const
ve let
kavramları, geliştiricilerin değişkenleri blok kapsamında bildirmesine izin verir, bu da bu değişkenlerin yalnızca karşılık gelen blok içinde var olduğu anlamına gelir.
Var
var
nerede kullandığınıza göre function scope veya global scope’tur.
Const
const
, “constant” kelimesinin kısaltması olup anlamı da “değiştirilemez” demektir. Yani const
ile tanımladığımız değişkenlerin değerlerini sonradan değiştiremezsiniz. Ayrıca block scope’tur.
let
let
ile tanımlanan değişkenlerin değerleri const
’tan farklı olarak değiştirilebilirdir. const
gibi block scope’tur ve yine const
’da olduğu gibi yalnızca bir defa tanımlanabilir.
Sonuç
Gördüğünüz üzere birbirine benzer ama farklı 3 değişken tanımlama yolumuz var. Kullanım amaçlarına bağlı olarak hepsini kullanabilirsiniz ama kodlar uzadıkça “ya acaba bunu tanımlamış mıydım yukarılarda bir yerlerde” dememek adına aynı zamanda daha az hatayla karşılaşmamak adına ben sadece const
ve let
kullanıyorum. Dediğim gibi var
kullanmak yanlış değil doğru ama yukarıda ne yazdığınızı unutup hata alırsanız ben karışmam :))
Buraya kadar okuduğunuz için teşekkür ederim, sonraki yazıda görüşmek üzere sağlıcakla kalın..