Zvedání JavaScriptu (s příklady)

V tomto výukovém programu se na příkladech dozvíte o zvedání JavaScriptu.

Zvedání v JavaScriptu je chování, při kterém lze před deklarací použít funkci nebo proměnnou. Například,

 // using test before declaring console.log(test); // undefined var test;

Výše uvedený program funguje a výstup bude nedefinovaný. Výše uvedený program se chová jako

 // using test before declaring var test; console.log(test); // undefined

Protože test proměnné je pouze deklarován a nemá žádnou hodnotu, undefinedje mu přiřazena hodnota.

Pokud se chcete dozvědět více o proměnných, navštivte Proměnné JavaScriptu.

Poznámka : I když se při zvedání zdá, že se deklarace v programu posunula nahoru, stane se skutečná věc, že ​​deklarace funkcí a proměnných jsou přidány do paměti během fáze kompilace.

Variabilní zdvihání

Pokud jde o proměnných a konstant, klíčové slovo varje zvednuta a leta constnedovolí zvedat.

Například,

 // program to display value a = 5; console.log(a); var a; // 5

Ve výše uvedeném příkladu se proměnná a použije před deklarováním. A program funguje a zobrazuje výstup 5. Program se chová jako:

 // program to display value var a; a = 5; console.log(a); // 5

V JavaScriptu však inicializace nejsou zvednuty. Například,

 // program to display value console.log(a); var a = 5;

Výstup

 nedefinováno

Výše uvedený program se chová jako:

 var a; console.log(a); a = 5;

Pouze deklarace se přesune do paměti ve fázi kompilace. Hodnota proměnné a je undefinedproto, že a je vytištěna bez její inicializace.

Když se proměnná používá uvnitř funkce, proměnná se také zvedne pouze na začátek funkce. Například,

 // program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);

Výstup

 ahoj Uncaught ReferenceError: b není definováno

Ve výše uvedeném příkladu je proměnná b zvednuta na vrchol funkce greeta stává se místní proměnnou. Proto b je přístupné pouze uvnitř funkce. b se nestane globální proměnnou.

Další informace o místních a globálních proměnných najdete v oboru proměnných JavaScriptu.

Poznámka : Při zvedání je deklarace proměnné přístupná pouze okamžitému rozsahu.

Pokud je s letklíčovým slovem použita proměnná , tato proměnná není zvednuta. Například,

 // program to display value a = 5; console.log(a); let a; // error

Výstup

 Uncaught ReferenceError: Cannot access 'a' before initialization

Při používání letmusí být proměnná deklarována jako první.

Zvedání funkcí

Funkci lze vyvolat před jejím prohlášením. Například,

 // program to print the text greet(); function greet() ( console.log('Hi, there.'); )

Výstup

 Ahoj

Ve výše uvedeném programu je funkce greetvolána před deklarováním a program zobrazuje výstup. To je způsobeno zvedáním.

Pokud je však funkce použita jako výraz , dojde k chybě, protože jsou vytaženy pouze deklarace. Například;

 // program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )

Výstup

 Uncaught ReferenceError: greet is not defined

Pokud by varbyl použit ve výše uvedeném programu, chyba by byla:

 Uncaught TypeError: greet is not a function

Poznámka : Zvedání se obecně neprovádí v jiných programovacích jazycích, jako je Python, C, C ++, Java.

Zvedání může ve vašem programu způsobit nežádoucí výsledky. Před použitím proměnných a funkcí je nejlepší deklarovat je a vyhnout se zvedání.

V případě proměnných je lepší použít letnež var.

Zajímavé články...