Blok Kapsam

Javascript'te her süslü parantez ( { } )arası bir bloktur. Blok kapsamda (alt kapsam) deklare edilen değişkenler 'yerel değişken' (local) olarak adlandırılır ve sadece kendi kapsamında geçerlidir.

// Bu örnekte hata fırlatılır. Çalışmaz.
{
    let yerelDegisken = 'Yerel Değişken';
}
alert(yerelDegisken); // Global kapsamda böyle bir değişken bildirilmedi.

Blok kapsamda deklare edilenler blok kapsamın tamamında geçerli olur. Yani kapsamın altındaki diğer kapsamlarda da geçerlidir. Deneyiniz.

// Kapsam içinde kapsam
{
    let yerelDegisken = 'Yerel Değişken';
    {
        alert(yerelDegisken);
    }
}

Burada da gördüğünüz gibi her kapsam bir alt kapsamın 'global' kapsamı sayılır. Bloklar iç içe uzayıp gidebilirler.

Bir kapsamın herhangi bir satırında var ile yaptığınız bildirimler kapsamdaki kodların yürütülmesinden önce ele alınır. Buna yukarı kaldırma (hoisted) denir. Örnek yürütme:

// Yazılan Kod
let dil = 'JS';
const ulke = 'TR';
alert('Uyarı!');
var isim = 'Asya';
function foo() {
    alert('FOO Fobnksiyonu');
}
var soyisim = 'GÜN';
// Yukarı Kaldırılan Kod
var isim = undefined;
var soyisim = undefined;
function foo() {
    alert('FOO Fobnksiyonu');
}
// yukarı kaldırma bitti
let dil = 'JS';
const ulke = 'TR';
alert('Uyarı!');
var isim = 'Asya';
var soyisim = 'GÜN';

Kullanıcı tarafından oluşturulan fonksiyonlar da yine yukarı kaldırılır.

Last updated