Hoisting

A function vagy a változók hívása a deklaráció előtt történik meg.

A Hoisting (emelés) a JavaScriptben egy viselkedés, amikor a változódeklarációk és függvénydeklarációk az adott scope elejére “emelkednek” a kódvégrehajtás során, még a tényleges deklaráció előtt is elérhetővé téve azokat. Ez lehetővé teszi a változók és függvények előzetes használatát a kódban, még mielőtt deklarálva lennének. Azonban az értékadások nem emelkednek fel, csak maguk a deklarációk.

console.log(x); // undefined
var x = 5;
console.log(x); // 5

hoistedFunction(); // "Hello"
function hoistedFunction() {
  console.log("Hello");
}

Ebben a példában láthatjuk a változó (x) és a függvény (hoistedFunction) emelkedését. Az első console.log(x) után a változó undefined értéket kap, mert az emelkedésnél a deklaráció már létrejött, de az értékadás még nem történt meg. A második console.log(x) után már a változó az értékét (5) tartalmazza.

Az hoistedFunction() hívása a deklaráció előtt történik, de mivel a függvénydeklaráció emelkedik, ezért a hívás sikeresen végrehajtódik.

Was this page helpful?