Junior
JavaScript'te kapsam nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
JavaScript'te kapsam (Scope), değişkenlerin ve fonksiyonların tanımlandığı ve erişilebilir olduğu bağlamdır.
Basitçe söylemek gerekirse, kodda bir değişkene veya fonksiyona nereden atıfta bulunulabileceğini belirler.
Birkaç farklı kapsam türü vardır:
- Küresel Kapsam (Global Scope): Herhangi bir fonksiyon dışında tanımlanan değişkenler küresel kapsamda bulunur. Kodun herhangi bir yerinden erişilebilirler.
// Küresel değişken let globalVar = "Her yerde görünürüm"; function showGlobal() { console.log(globalVar); // Fonksiyon içinde erişilebilir } showGlobal(); - Yerel (Fonksiyon) Kapsamı (Local/Function Scope): Bir fonksiyon içinde tanımlanan değişkenler, o fonksiyonun yerel kapsamındadır. Sadece bu fonksiyon ve iç içe fonksiyonlar tarafından erişilebilir, dışarıdan erişilemez.
function showLocal() { // Yerel değişken let localVar = "Sadece burada görülebilir"; console.log(localVar); } showLocal(); // console.log(localVar); // Hata: localVar tanımlı değil - Blok Kapsamı (Block Scope): ES6 (ES2015) ile
letveconstkullanımıyla tanıtılmıştır.{}içindeki, döngüler veya koşullar gibi bloklar içindeki değişkenler blok kapsamına sahiptir.varile tanımlanan değişkenler blok kapsamına sahip değildir.if (true) { // Blok kapsamındaki değişken let blockVar = "Sadece bu blokta görünür"; console.log(blockVar); } // console.log(blockVar); // Hata: blockVar tanımlı değil for (let i = 0; i < 2; i++) { // Döngüde blok kapsamındaki değişken console.log(i); } // console.log(i); // Hata: i tanımlı değil (let kullanıldıysa)
Ayrıca, Kapsam Zinciri (Scope Chain) kavramını anlamak da önemlidir. JavaScript, bir değişkenin değerini bulmaya çalışırken önce mevcut kapsamda arar. Bulamazsa, dış kapsama (üst) geçer ve bu şekilde devam eder, en sonunda küresel kapsama ulaşır. Değişken burada da bulunamazsa, ReferenceError hatası fırlatılır.