Sobes.tech
Junior

let ile var arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

var fonksiyonel veya küresel kapsam alanına sahiptir, yeniden bildirilebilir ve üzerine yazılabilir. Hoisting'e tabidir ve tanımlandığında undefined olarak başlatılır. let blok kapsamına sahiptir, üzerine yazılabilir, ancak aynı kapsamda yeniden bildirilemez. Ayrıca Hoisting'e tabidir, ancak "geçici ölüm bölgesi"nde bulunur ve başlatılana kadar erişilemez.

Karşılaştırma tablosu:

Özellik var let
Kapsam alanı Fonksiyonel/Küresel Blok
Yeniden bildirim Evet Hayır
Üzerine yazma Evet Evet
Hoisting Evet Evet
Başlatma undefined - (geçici ölüm bölgesi)

Örnek:

// var
function ornekVar() {
  var x = 10;
  if (true) {
    var x = 20; // x'in yeniden bildirimi
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function ornekLet() {
  let y = 10;
  if (true) {
    let y = 20; // Blok kapsamındaki yeni değişken y
    console.log(y); // 20
  }
  console.log(y); // 10
}

ornekVar();
ornekLet();