JavaScript Variable Scope

Scope označuje dostupnost proměnných a funkcí v určitých částech kódu.

V Javascriptu, proměnná má dva typy rozsah:

  1. Globální Působnosti
  2. Místní Působnosti

Globální Rozsah

proměnné deklarované v horní části programu nebo mimo funkci, je považován za globální rozsah proměnné.

podívejme se na příklad proměnné globálního rozsahu.

// program to print a text let a = "hello";function greet () { console.log(a);}greet(); // hello

ve výše uvedeném programu je proměnná a deklarována v horní části programu a je globální proměnnou. To znamená, že proměnnou a lze použít kdekoli v programu.

hodnota globální proměnné může být změněna uvnitř funkce. Například

// program to show the change in global variablelet a = "hello";function greet() { a = 3;}// before the function callconsole.log(a);//after the function callgreet();console.log(a); // 3

ve výše uvedeném programu je proměnná a globální proměnná. Hodnota a je dobrý den. Poté je proměnná a přístupná uvnitř funkce a hodnota se změní na 3.

proto se hodnota a změní po změně uvnitř funkce.

Poznámka: Je dobrým zvykem vyhnout se používání globálních proměnných, protože hodnota globální proměnné se může měnit v různých oblastech programu. To může zavést neznámé výsledky v programu.

v JavaScriptu lze proměnnou použít i bez deklarace. Pokud je proměnná použita bez deklarace, tato proměnná se automaticky stává globální proměnnou.

například

function greet() { a = "hello"}greet();console.log(a); // hello

ve výše uvedeném programu je proměnná a globální proměnnou.

Pokud byla proměnná deklarována pomocí let a = "hello", program by hodil chybu.

Poznámka: V JavaScriptu je "strict mode";, ve kterém proměnnou nelze použít bez jejího deklarace. Chcete-li se dozvědět více o strict, navštivte JavaScript Strict.

Místní Působnosti

proměnná může mít také místní působnosti, jsem.e to může být přístupné pouze v rámci funkce.

Příklad 1: Místní Působnosti Proměnné

// program showing local scope of a variablelet a = "hello";function greet() { let b = "World" console.log(a + b);}greet();console.log(a + b); // error

Výstupní

helloWorldUncaught ReferenceError: b is not defined

Ve výše uvedeném programu, proměnná je globální proměnná a proměnná b je lokální proměnné. Proměnná b je přístupná pouze uvnitř funkce greet. Když se tedy pokusíme o přístup k proměnné b mimo funkci, dojde k chybě.

let je Block Scoped

Klíčové slovo let je block-scoped (proměnná je přístupná pouze v bezprostředním bloku).

Příklad 2: blok-scoped Proměnné

// program showing block-scoped concept// global variablelet a = 'Hello';function greet() { // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') { // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); } // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c);}greet();

Výstupní

Hello WorldHello World helloUncaught ReferenceError: x is not defined

Ve výše uvedeném programu, proměnné,

  • je globální proměnná. Je přístupný kdekoli v programu.
  • b je lokální proměnná. Lze k němu přistupovat pouze uvnitř funkce greet.
  • c je bloková proměnná. Lze k němu přistupovat pouze uvnitř bloku příkazů if.

proto ve výše uvedeném programu fungují první dva console.log() bez problémů.

snažíme se však získat přístup k blokově vymezené proměnné c mimo blok ve třetím console.log(). To bude hodit chybu.

Poznámka: V Javascriptu, var je funkce rozsahem a let je blokový-scoped. Pokud se pokusíte použít var c = 'hello'; uvnitř if prohlášení ve výše uvedeném programu, celý program funguje, a jak c je zacházeno jako lokální proměnné.

dozvědět Se více o let nebo var, navštivte JavaScript dovolte vs var.

Related Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *