Javascript kodlarımızı yazarken karşılaştığımız VAR , LET ve CONST kelimeleri vardır . Bunların görevleri değişken tanımlamak olsa da aslında bu tanımlamaların arasında farklılıklar bulunmaktadır.
Şimdi sırasıyla bunları inceleyelim ;
VAR
var ile tanımlanan değişkenlerin kapsamı diğerlerinden daha fazladır . Bunları şu şekilde açıklayabilirizi.
- Var ile tanımlanan değişkenler daha sonra değiştirilebilir
- Var ile tanımlanan değişlenler kodun herhangi bir yerinde ve birden fazla kez kullanılabilir . Ya da tekrar tanımlanabilir.
- Var ile tanımlanan değişkenler fonksiyonların kapsamı içerisindedir (function scope) yani fonksiyon içerisinde Var kullanılarak tanımlanmış değişkenlere fonksiyon dışından erişim sağlanamaz.
var isim = 'Serhat';
console.log(isim); // "Serhat" isim değişkeni Serhat olarak döner
function yasKac (_yas) {
var yas = _yas;
console.log(yas);
} yasKac(40);
console.log(yas); // undefined olarak cevap dönecektir
LET
let ile tanımlanmış değişkenlere sadece tanımlandığı kapsamda ulaşılabilir . Block scope’dan kasıt her bir süslü parantezin ({}) içerisidir Sonradan tekrar değiştirilebilir Aynı kapsam (scope) içerisinde sadece bir sefer tanımlanabilir. Tekrar tanımlanmaya çalıştığında kod hata verir ve çalışmayı durdurur.
let x = 10; // global kapsamda tanımlanmış x değişkeni
if (true) {
let x = 20; // blok kapsamında tanımlanmış x değişkeni
console.log(x); // çıktı: 20
}
console.log(x); // çıktı: 10
Bu örnekte, önce global kapsamda
x değişkeni tanımlanmıştır ve değeri 10 olarak atılmıştır. Daha sonra
if bloğu içinde yeni bir
x değişkeni let anahtar kelimesi ile tanımlanmıştır ve değeri 20 olarak atanmıştır. Ancak, bu değişken sadece blok kapsamında geçerlidir, yani blok dışındaki
x değişkeni değişmemiştir ve değeri hala 10 olarak kalmıştır.
Ayrıca, let ile tanımlanan değişkenler sadece tanımlandığı kapsamda (burada blok kapsamı) erişilebilirdir ve aynı kapsam içinde sadece bir kez tanımlanabilirler. Eğer aynı kapsamda tekrar tanımlamaya çalışırsanız, kod hata verecektir ve çalışmayı durduracaktır.
CONST
const ile tanımlanmış bir değişken let kullanımında olduğu gibi tanımlandığı kapsam (block scope) içerisinden erişilebilir ve bunun dışından erişimler sağlanmaz. const kelimesi aslında Constant yani Sabit anlamını taşımaktadır . Kullanıldığı kapsam içerisinde sabittir ve değiştirilemez .
const pi = 3.14; // global kapsamda tanımlanmış sabit değişken
if (true) {
const pi = 3.141592; // blok kapsamında tanımlanmış sabit değişken
console.log(pi); // çıktı: 3.141592
}
console.log(pi); // çıktı: 3.14
Bu örnekte, önce global kapsamda
pi sabit değişkeni tanımlanmıştır ve değeri 3.14 olarak atanmıştır. Daha sonra
if bloğu içinde yeni bir
pi sabit değişkeni const anahtar kelimesi ile tanımlanmıştır ve değeri 3.141592 olarak atanmıştır. Ancak, bu değişken sadece blok kapsamında geçerlidir, yani blok dışındaki
pi değişkeni değişmemiştir ve değeri hala 3.14 olarak kalmıştır.
Ayrıca, const ile tanımlanan değişkenler sadece tanımlandığı kapsamda (burada blok kapsamı) erişilebilir ve aynı kapsam içinde sadece bir kez tanımlanabilirler. Ancak, let ile farklı olarak const ile tanımlanan değişkenler sabittir ve değiştirilemezler. Eğer değiştirmeye çalışırsanız, kod hata verecektir ve çalışmayı durduracaktır. Bu nedenle, const ile tanımlanan değişkenler genellikle programda değiştirilmemesi gereken sabit değerler için kullanılır.
|Özellik
|var
|let
|const
|Kapsam
|Function
|Block
|Block
|Tekrar Tanımlama
|Evet
|Hayır
|Hayır
|Değiştirilebilirlik
|Evet
|Evet
|Hayır
|İlk Değer Atama Zorunluluğu
|Hayır
|Hayır
|Evet
Yukarıdaki tabloda, var, let ve const anahtar kelimelerinin kapsamı, tekrar tanımlanabilme özelliği, değiştirilebilirlik, ilk değer atama zorunluluğu gibi özellikleri karşılaştırılmaktadır.
- Kapsam:
var anahtar kelimesi, tanımlandığı kapsamın içinde bulunduğu fonksiyon veya dosya boyunca erişilebilirken,
let ve
const anahtar kelimeleri sadece tanımlandıkları blok kapsamında geçerlidirler.
- Tekrar Tanımlama:
var ile tanımlanan bir değişken, aynı kapsamda tekrar tanımlanmaya çalışıldığında hata vermezken,
let ve
const anahtar kelimeleri sadece bir kez tanımlanabilirler ve aynı kapsamda tekrar tanımlanmaya çalışıldığında hata verirler.
- Değiştirilebilirlik:
var ve
let anahtar kelimeleri ile tanımlanan değişkenler değiştirilebilirken,
const ile tanımlanan değişkenler sabittir ve değiştirilemezler.
- İlk Değer Atama Zorunluluğu:
let ve
const ile tanımlanan değişkenler, tanımlandıkları anda bir değer ataması yapılması zorunludur. Ancak,
var ile tanımlanan değişkenler için bu zorunluluk yoktur.
Var , Let , Const Arasındaki farklar bu şekilde … umarım faydalı olmuştur.