⊗jsPmFVGb 218 of 505 menu

Globálne premenné vo funkciách v JavaScripte

V JavaScripte (v iných jazykoch najčastejšie to tak nie je) premenné definované mimo funkcie budú viditeľné vo vnútri tejto funkcie. Takéto premenné sa nazývajú globálne. Pozrime sa na príklad:

let num = 1; // premenná mimo funkcie function func() { console.log(num); // premenná num je viditeľná vo vnútri funkcie } func(); // vypíše 1

V skutočnosti musí byť premenná definovaná nie pred definíciou funkcie, ale pred jej volaním:

function func() { console.log(num); } let num = 1; // premenná mimo funkcie func(); // vypíše 1

Ak meníte hodnotu premennej a potom zakaždým voláte funkciu - console.log zakaždým vypíše rôzne výsledky:

function func() { console.log(num); } let num; // deklarujeme premennú num = 1; // nastavíme hodnotu 1 func(); // vypíše 1 num = 2; // nastavíme hodnotu 2 func(); // vypíše 2

Ak máme viacero funkcií, tak globálna premenná bude prístupná v každej z týchto funkcií:

function func1() { console.log(num); } function func2() { console.log(num); } let num = 1; func1(); // vypíše 1 func2(); // vypíše 1

Ak v jednej z funkcií dôjde k zmenám globálnej premennej, tak táto premenná sa zmení vo všetkých funkciách, ktoré používajú túto premennú:

function func1() { console.log(num); num++; // meníme globálnu premennú } function func2() { console.log(num); } let num = 1; func1(); // vypíše 1 func2(); // vypíše 2

Pretože ľubovoľná z funkcií môže ľahko zmeniť globálnu premennú, tak ich používanie predstavuje živnú pôdu pre ťažko zachytiteľné chyby. Z tohto dôvodu je potrebné používanie globálnych premenných v skripte minimalizovať. Žiaduce je, aby ich vôbec nebolo alebo bolo čo najmenšie množstvo.

Určite, bez spúšťania kódu, čo sa vypíše do konzoly:

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

Určite, bez spúšťania kódu, čo sa vypíše do konzoly:

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

Určite, bez spúšťania kódu, čo sa vypíše do konzoly:

function func() { console.log(num); } let num; num = 1; func(); num = 2; func();
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť