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í!