⊗jsPmFVGb 218 of 505 menu

Globální proměnné ve funkcích v JavaScriptu

V JavaScriptu (v jiných jazycích to většinou není tak) proměnné definované vně funkce budou viditelné uvnitř této funkce. Takové proměnné se nazývají globální. Podívejme se na příklad:

let num = 1; // proměnná vně funkce function func() { console.log(num); // proměnná num je viditelná uvnitř funkce } func(); // vypíše 1

Ve skutečnosti musí být proměnná definována ne před definicí funkce, ale před jejím voláním:

function func() { console.log(num); } let num = 1; // proměnná vně funkce func(); // vypíše 1

Pokud změníme hodnotu proměnné a poté pokaždé zavoláme funkci - console.log bude pokaždé vypisovat různé výsledky:

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

Pokud máme několik funkcí, pak globální proměnná bude dostupná v každé z těchto funkcí:

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

Pokud v jedné z funkcí dojde ke změnám globální proměnné, pak se tato proměnná změní ve všech funkcích, které používají tuto proměnnou:

function func1() { console.log(num); num++; // měníme globální proměnnou } function func2() { console.log(num); } let num = 1; func1(); // vypíše 1 func2(); // vypíše 2

Protože kterákoli z funkcí může snadno změnit globální proměnnou, jejich použití představuje semeniště obtížně zachytitelných chyb. Z tohoto důvodu by se mělo použití globálních proměnných ve skriptu minimalizovat. Je žádoucí, aby buď nebyly vůbec, nebo aby jich bylo co nejméně.

Určete, bez spuštění kódu, co se vypíše do konzole:

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

Určete, bez spuštění kódu, co se vypíše do konzole:

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

Určete, bez spuštění kódu, co se vypíše do konzole:

function func() { console.log(num); } let num; num = 1; func(); num = 2; func();
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout