Vigezo vya Ulimwengu Katika Kazi katika JavaScript

Katika JavaScript (katika lugha nyingine mara nyingi sio hivyo) vigezo vilivyofafanuliwa nje ya kazi, vitaonekana ndani ya kazi hiyo. Vigezo kama hivyo huitwa vigezo vya ulimwengu. Tutaangalia kwa mfano:

javascriptlet num = 1; // kigezo nje ya kazi

function func() {
  console.log(num); // kigezo num kinaonekana ndani ya kazi
}

func(); // inatoa 1

Kwa kweli kigezo kinapaswa kufafanuliwa sio kabla ya ufafanuzi wa kazi, lakini kabla ya kiitwacho:

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

let num = 1; // kigezo nje ya kazi
func();      // inatoa 1

Ikiwa utabadilisha thamani ya kigezo na baada ya hapo kila wakati ukiita kazi - console.log kila wakati utatoa matokeo tofauti:

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

let num; // tunatanga kigezo

num = 1; // tunaweka thamani 1
func();  // inatoa 1

num = 2; // tunaweka thamani 2
func();  // inatoa 2

Ikiwa tuna kazi nyingi, basi kigezo cha ulimwengu kitawezekana katika kila moja ya hizi kazi:

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

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

let num = 1;

func1(); // inatoa 1
func2(); // inatoa 1

Ikiwa katika moja ya kazi kutakuwapo na mabadiliko na kigezo cha ulimwengu, basi kigezo hicho kitabadilika katika kazi zote, zikitumia kigezo hicho:

javascriptfunction func1() {
  console.log(num);
  num++; // tunabadilisha kigezo cha ulimwengu
}

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

let num = 1;

func1(); // inatoa 1
func2(); // inatoa 2

Kwa kuwa kazi yoyote kwa urahisi inaweza kubadilisha kigezo cha ulimwengu, basi matumizi yake yanawakilisha chanzo cha makosa yasiyoonekana kwa urahisi. Kwa sababu hii, matumizi ya vigezo vya ulimwengu katika hati ya maelekezo inahitaji kupunguzwa kwa kiwango cha chini. Inafaa kwamba hata hayawakuwapo kabisa au yalikuwapo idadi ndogo zaidi.

Задание 1

Amua, bila kukimbiza kificho, nini kitatolewa kwenye koni:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

func();
Задание 2

Amua, bila kukimbiza kificho, nini kitatolewa kwenye koni:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

num = 2;
func();
Задание 3

Amua, bila kukimbiza kificho, nini kitatolewa kwenye koni:

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

let num;

num = 1;
func();

num = 2;
func();