Základy JavaScriptu 101 – Zdvihání

TL;DR

Vždy deklarujte své proměnné nahoře na začátku každého rozsahu, pak se nebudete muset potýkat s chybami, které mohou pocházet z toho, že nerozumíte "zvedání"

TL;Ale stále budu číst

Zvednutí je výchozí chování JavaScriptu při přesouvání všech deklarací na začátek aktuálního rozsahu (na začátek aktuálního skriptu nebo aktuální funkce).

Důležité k zapamatování

nechat a const NELZE zvednout.

Deklarace vs. inicializace

var arnold = "2 cats";
//You can declare and initialize in the same line like above

var arnold
// is a declaration

= "2 cats";
// is the initialization of var arnold

Když se deklarace zvedne, ale inicializace ne:


var arnold = "2 cats";  

console.log("Arnold has " + arnold + " and pumping them " + pumping);
// pumping is hoisted, as a declaration
// it exists, but the initialized value, won't get hoisted

var pumping = "up";

"Arnold has 2 cats and pumping them undefined"
// output

Další příklad k posílení:


var arnold = "2 cats";  
pumping = "up";

console.log("Arnold has " + arnold + " and pumping them " + pumping);
// pumping has already been declared

var pumping = "down";


"Arnold has 2 cats and pumping them up"
// output

Pokud jste očekávali, že "Arnold má 2 kočky a pumpuje je dolů", pamatujte, že inicializace se nezvyšují!

Doufám, že jste se dnes dozvěděli něco o zvedání!

zdroje:
https://www.w3schools.com/js/js_hoisting.asp