JavaScript-de funksiýalaryň daşarky üýtgeýänlerine giriş

Aşakdaky koda serediň:

javascriptlet num = 1; // üýtgeýjäniň bahasyny belleýäris

function func() {
  console.log(num); // ony konsola çykarýarys
}

func(); // funksiýany çagyryň

Men öň aýdşy ýaly, üýtgeýjäniň bahasy funksiýanyň kesgitlenmesinden öň bolmaly däl, esasy, ol onuň çagyrylyşyndan öň durmaly:

javascriptfunction func() {
  console.log(num);
}

let num = 1;
func();

Aslynda bu doly şeýle däl. Bizim funksiýamyz hatda öz çagyrylyşyndan öňem üýtgeýjäniň bahasyny bilýär num:

javascriptlet num = 1;

function func() {
  console.log(num); // funksiýa eýýäm num = 1 diýip bilýär
}

Bu ýerde has çylşyrymly mysal:

javascriptlet num = 1; // funksiýa bu wagt num = 1 diýip öwrenýär

function func() {
  console.log(num);
}

num = 2; // funksiýa bu wagt num = 2 diýip öwrenýär

Funksiýanyň çagyrylyşyny goşalyň:

javascriptlet num = 1; // funksiýa bu wagt num = 1 diýip öwrenýär
func(); // 1-ni görkezer

function func() {
  console.log(num);
}

func(); // 1-ni görkezer
num = 2; // funksiýa bu wagt num = 2 diýip öwrenýär
func(); // 2-ni görkezer

Ýene bir gezek: aslynda funksiýa daşarky üýtgeýänleriň bahalaryny, hatda çagyrylmazdanem bilýär.