Bu eğitimde, örnekler yardımıyla JavaScript'teki değişken kapsam hakkında bilgi edineceksiniz.
Kapsam, kodun belirli bölümlerinde değişkenlerin ve işlevlerin kullanılabilirliğini ifade eder.
JavaScript'te bir değişkenin iki tür kapsamı vardır:
- Global Kapsam
- Yerel Kapsam
Global Kapsam
Bir programın üstünde veya bir işlevin dışında bildirilen bir değişken, genel kapsam değişkeni olarak kabul edilir.
Küresel kapsam değişkenine bir örnek görelim.
// program to print a text let a = "hello"; function greet () ( console.log(a); ) greet(); // hello
Yukarıdaki programda, a değişkeni bir programın tepesinde bildirilir ve global bir değişkendir. Bu, değişkenin a
programın herhangi bir yerinde kullanılabileceği anlamına gelir .
Global bir değişkenin değeri bir fonksiyon içinde değiştirilebilir. Örneğin,
// program to show the change in global variable let a = "hello"; function greet() ( a = 3; ) // before the function call console.log(a); //after the function call greet(); console.log(a); // 3
Yukarıdaki programda, a değişkeni global bir değişkendir. A'nın değeri merhaba. Daha sonra bir fonksiyonun içinde a değişkenine erişilir ve değer 3 olarak değişir .
Dolayısıyla, bir işlevin içinde değiştirildikten sonra değeri değişir.
Not : Global değişkenleri kullanmaktan kaçınmak iyi bir uygulamadır çünkü global bir değişkenin değeri programdaki farklı alanlarda değişebilir. Programda bilinmeyen sonuçlar ortaya çıkabilir.
JavaScript'te, bir değişken belirtilmeden de kullanılabilir. Bir değişken bildirilmeden kullanılırsa, bu değişken otomatik olarak global bir değişken haline gelir.
Örneğin,
function greet() ( a = "hello" ) greet(); console.log(a); // hello
Yukarıdaki programda, a değişkeni global bir değişkendir.
Değişken kullanılarak bildirilmişse let a = "hello"
, program bir hata verir.
Not : JavaScript'te, "strict mode";
bir değişkenin bildirilmeden kullanılamayacağı vardır. Katı hakkında daha fazla bilgi edinmek için JavaScript Strict'i ziyaret edin.
Yerel Kapsam
Bir değişkenin yerel bir kapsamı da olabilir, yani sadece bir işlev içinden erişilebilir.
Örnek 1: Yerel Kapsam Değişkeni
// program showing local scope of a variable let a = "hello"; function greet() ( let b = "World" console.log(a + b); ) greet(); console.log(a + b); // error
Çıktı
helloWorld Yakalanmamış Referans Hatası: b tanımlı değil
Yukarıdaki programda, a değişkeni genel bir değişkendir ve b değişkeni yerel bir değişkendir. B değişkenine yalnızca karşılama işlevinin içinden erişilebilir. Dolayısıyla, fonksiyonun dışında b değişkenine erişmeye çalıştığımızda bir hata oluşur.
Blok Kapsamlı olsun
let
Anahtar (değişken sadece hemen blok erişilebilir) blok kapsamı.
Örnek 2: blok kapsamlı Değişken
// program showing block-scoped concept // global variable let a = 'Hello'; function greet() ( // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') ( // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); ) // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c); ) greet();
Çıktı
Merhaba Dünya Merhaba Dünya merhaba Yakalanmamış Referans Hatası: x tanımlı değil
Yukarıdaki programda değişken
- a global bir değişkendir. Programın herhangi bir yerinden erişilebilir.
- b yerel bir değişkendir. Yalnızca işlevin içinden erişilebilir
greet
. - c, blok kapsamlı bir değişkendir. Yalnızca
if
ifade bloğunun içinden erişilebilir .
Dolayısıyla yukarıdaki programda ilk ikisi console.log()
sorunsuz çalışır.
Bununla birlikte, blok kapsamlı c değişkenine üçüncü bloğun dışında erişmeye çalışıyoruz console.log()
. Bu bir hata oluşturacaktır.
Not : JavaScript'te, var
işlev kapsamlı ve let
blok kapsamlıdır. Yukarıdaki programda ifadenin var c = 'hello';
içini kullanmaya çalışırsanız if
, tüm program çalışır, çünkü c yerel bir değişken olarak kabul edilir.
Daha hakkında bilgi edinmek için let
karşı var
, ziyaret JavaScript var vs edelim.