Junior
Mi az a JavaScript hosting?
sobes.tech MI
Válasz az MI-től
A JavaScript hosting (vagy JavaScript hosting) a JavaScript fordító viselkedésére utal, amely szerint a változó- és függvénybejelentések "feljebb kerülnek" a hatókörük elejére, mielőtt a kód végrehajtódik.
Fő pontok:
- Csak a bejelentések kerülnek feljebb, nem a inicializálások. Ez azt jelenti, hogy használhatunk egy változót vagy függvényt a deklarálásuk előtt, de a változó értéke az inicializálás előtt
undefinedlesz. - Külön viselkedés a
var,let/constés függvénybejelentések esetén.var: A bejelentések feljebb kerülnek, és az értékükundefined-ként lesz inicializálva a hatókör elején.console.log(sajatValtozo); // undefined var sajatValtozo = 10;letésconst: A bejelentések feljebb kerülnek, de nem inicializálódnak. A hozzáférésük a inicializálás előttReferenceErrorhibát okoz (ideiglenes halott zóna - Temporal Dead Zone).// console.log(sajatLet); // ReferenceError: cannot access 'sajatLet' before initialization let sajatLet = 20;- Függvénybejelentések: A teljes függvénybejelentés (név és törzs) feljebb kerül. A függvényt a deklarációja előtt is lehet hívni.
fuggveny(); // "helló" function fuggveny() { console.log("helló"); } - Függvénykifejezések: Csak a változó (
var,letvagyconst), amelyhez függvény van rendelve, kerül feljebb. A függvényt nem lehet a hozzárendelés előtt hívni.// fuggvenyKifejezes(); // TypeError: fuggvenyKifejezes nem függvény (ha `var`-ral van deklarálva) // fuggvenyKifejezes(); // ReferenceError: cannot access 'fuggvenyKifejezes' before initialization (ha `let`/`const`-tal van deklarálva) var fuggvenyKifejezes = function() { console.log("világ"); };
A hosting megértése fontos a váratlan viselkedés és hibák elkerülése érdekében a kódban. A let és const használata segít a változóbejelentések viselkedésének előre láthatóbbá tételében.