Sobes.tech
Junior

JavaScript-də sahə nədir?

sobes.tech Süni İntellekt

AI-dan cavab

JavaScript-də Görünüş sahəsi (Scope), dəyişənlərin və funksiyaların təyin olunduğu və əlçatan olduğu kontekstdir.

Sadə desək, kodda dəyişən və ya funksiyaya müraciət edə biləcəyiniz yeri müəyyən edir.

Bir neçə növ görünüş sahəsi mövcuddur:

  • Qlobal Görünüş Sahəsi (Global Scope): Hər hansı bir funksiyadan kənarda elan olunan dəyişənlər qlobal görünüş sahəsindədir. Onlara kodun hər yerindən daxil olmaq mümkündür.
    // Qlobal dəyişən
    let globalVar = "Hər yerdə görünür";
    
    function showGlobal() {
      console.log(globalVar); // Funksiya daxilində mövcuddur
    }
    
    showGlobal();
    
  • Yerli (Funksiya) Görünüş Sahəsi (Local/Function Scope): Funksiya daxilində elan olunan dəyişənlər həmin funksiyanın yerli görünüş sahəsindədir. Onlar yalnız bu funksiyada və iç-içə funksiyalarda əlçatan, xaricdə isə yox.
    function showLocal() {
      // Yerli dəyişən
      let localVar = "Yalnız burada görünür";
      console.log(localVar);
    }
    
    showLocal();
    // console.log(localVar); // Xəta: localVar təyin olunmayıb
    
  • Blok Görünüş Sahəsi (Block Scope): ES6 (ES2015) ilə letconst istifadə edilərək təqdim olunub. {} içində, məsələn, kod blokları, döngələr və ya şərtlər daxilində elan olunan dəyişənlər blok görünüş sahəsinə malikdir. var ilə elan olunan dəyişənlər isə blok görünüş sahəsinə malik deyil.
    if (true) {
      // Blok görünüş sahəsinə malik dəyişən
      let blockVar = "Yalnız bu blokda görünür";
      console.log(blockVar);
    }
    
    // console.log(blockVar); // Xəta: blockVar təyin olunmayıb
    
    for (let i = 0; i < 2; i++) {
      // Döngüdə blok görünüş sahəsinə malik dəyişən
      console.log(i);
    }
    
    // console.log(i); // Xəta: i təyin olunmayıb (əgər let istifadə olunubsa)
    

Həmçinin, Scope Chain (Görünüş Zənciri) anlayışını başa düşmək vacibdir. JavaScript, bir dəyişənin dəyərini tapmağa çalışarkən əvvəlcə cari görünüşdə axtarır. Əgər tapmazsa, xarici (valideyn) görünüşə keçir və bu şəkildə davam edir, ən sonunda qlobal görünüşə çatır. Əgər dəyişən heç yerdə tapılmazsa, ReferenceError xətası atılır.