Block scope
let ve const ile blok kapsamlı değişken tanımlamayı ve var'dan farkını öğrenirsin.
Blok kapsam
Blok kapsam, bir { } bloğu içinde tanımlanan değişkenlerin yalnızca o blok içinde geçerli olmasıdır. let ve const blok kapsamlıdır; if, for ya da yalnızca { } içine yazdıkların blok dışından erişilemez.
Örneğin if (ready) { let status = 'aktif'; } yazdığında status yalnızca o if bloğu içinde yaşar. Bu, değişkenleri yalnızca ihtiyaç duydukları yerde tutmanın temiz yoludur.
var blok kapsam yapmaz
var ile tanımlanan değişkenler blok kapsamına girmez; bulundukları fonksiyonun tamamında yaşarlar. Yani bir if bloğu içinde var yazarsan, o değişken blok dışından da erişilebilir olur.
Bu eski davranış, bugün beklenmeyen hatalara yol açar. Bu yüzden modern kodda var yerine let ve const kullanılır. var'ı yalnızca eski kodları okurken görürsün.
Uygulama Blok kapsamlı değişkeni kullan
checkStock(count) adında bir fonksiyon tanımla. if (count > 0) bloğu içinde let status adında bir değişken tanımla ve değerini "stokta" yap. Aynı blok içinde console.log(status) ile yazdır. Dışarıda checkStock(5) çağrısı yapsın.
Örnek çözümü göster
function checkStock(count) {
if (count > 0) {
let status = "stokta";
console.log(status);
}
}
checkStock(5);
Kendini test et
-
Bu kodun çıktısı ne olur?
if (true) { let x = 5; } console.log(x);- 5
- ReferenceError
- undefined
- null
Cevabı göster
ReferenceError — Doğru. let ile tanımlanan x blok kapsamlıdır, dışarıdan erişilemez.
-
Blok kapsamlı değişkeni tamamla
if (active) { let status = ____; console.log(status); }Cevabı göster
if (active) { let status = "aktif"; console.log(status); } -
Bildirimi kapsamıyla eşleştir
- let
- Blok kapsamlıdır
- const
- Blok kapsamlı, sabittir
- var
- Fonksiyon kapsamlıdır
- fonksiyon parametresi
- Yalnız fonksiyon içindedir