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();