Sobes.tech
Junior

JavaScript hosting nədir?

sobes.tech Süni İntellekt

AI-dan cavab

JavaScript hosting (və ya JavaScript hosting) JavaScript tərtibçisinin davranışına aiddir, burada dəyişən və funksiyaların bəyanatları "yuxarıya qaldırılır" və kodun icrasından əvvəl onların sahəsinin başlanğıcına gətirilir.

Əsas nöqtələr:

  • Yalnız bəyanatlar yuxarıya qaldırılır, başlanğıclar yox. Bu, kodda bəyan edilməmişdən əvvəl dəyişən və ya funksiyanı istifadə edə biləcəyiniz, lakin dəyişənin dəyərinin başlanğıcdan əvvəl undefined olacağı anlamına gəlir.
  • var, let/const və funksiyaların bəyanatları üçün ayrılmış davranış.
    • var: Bəyanatlar yuxarıya qaldırılır və başlanğıcda undefined dəyəri ilə başlatılır.
      console.log(mənimDəyişənim); // undefined
      var mənimDəyişənim = 10;
      
    • letconst: Bəyanatlar yuxarıya qaldırılır, lakin başlanğıc edilməz. Onlara giriş başlanğıcdan əvvəl ReferenceError xətasına səbəb olur (Müvəqqəti Ölüm Zonası - Temporal Dead Zone).
      // console.log(mənimLetim); // ReferenceError: cannot access 'mənimLetim' before initialization
      let mənimLetim = 20;
      
    • Funksiya bəyanatları: Bütün funksiya bəyanatı (ad və bədən) yuxarıya qaldırılır. Funksiya onun bəyanatından əvvəl çağırıla bilər.
      mənimFəaliyyətim(); // "salam"
      function mənimFəaliyyətim() {
        console.log("salam");
      }
      
    • Funksiya ifadələri: Yalnız funksiyaya təyin olunan dəyişən (var, let və ya const) yuxarıya qaldırılır. Funksiya təyin edilmədən əvvəl çağırıla bilməz.
      // mənimFəaliyyətİfadəm(); // TypeError: mənimFəaliyyətİfadəm bir funksiya deyil (əgər `var` ilə bəyan edilibsə)
      // mənimFəaliyyətİfadəm(); // ReferenceError: cannot access 'mənimFəaliyyətİfadəm' before initialization (əgər `let`/`const` ilə bəyan edilibsə)
      var mənimFəaliyyətİfadəm = function() {
        console.log("dünya");
      };
      

Hosting-i anlamaq kodda gözlənilməz davranış və səhvlərin qarşısını almaq üçün vacibdir. letconst istifadə etmək dəyişən bəyanatlarının davranışını daha proqnozlaşdırıla bilən edir.