Junior
Čo je hosting JavaScript?
sobes.tech AI
Odpoveď od AI
Hosting JavaScriptu (alebo hosting JavaScriptu) odkazuje na správanie prekladača JavaScriptu, pri ktorom sú deklarácie premenných a funkcií "zdvihnuté" na začiatok ich rozsahu pred vykonaním kódu.
Kľúčové body:
- Len deklarácie sú zdvihnuté, nie inicializácie. To znamená, že môžete použiť premennú alebo funkciu skôr, ako sú deklarované v kóde, ale hodnota premennej pred inicializáciou bude
undefined. - Samostatné správanie pre
var,let/consta deklarácie funkcií.var: Deklarácie sú zdvihnuté a inicializované hodnotouundefinedna začiatku rozsahu.console.log(mojaPremenna); // undefined var mojaPremenna = 10;letaconst: Deklarácie sú zdvihnuté, ale nie sú inicializované. Prístup k nim pred inicializáciou spôsobí chybuReferenceError(dočasná mŕtva zóna - Temporal Dead Zone).// console.log(mojaLet); // ReferenceError: cannot access 'mojaLet' before initialization let mojaLet = 20;- Deklarácie funkcií: Celá deklarácia funkcie (meno a telo) je zdvihnutá. Funkciu je možné volať pred jej deklaráciou v kóde.
mojaFunkcia(); // "ahoj" function mojaFunkcia() { console.log("ahoj"); } - Výrazy funkcií: Len premenná (
var,letaleboconst), ktorej je priradená funkcia, je zdvihnutá. Funkciu nie je možné volať pred priradením.// mojaFunkciaVyraz(); // TypeError: mojaFunkciaVyraz nie je funkcia (ak je deklarovaná s var) // mojaFunkciaVyraz(); // ReferenceError: cannot access 'mojaFunkciaVyraz' before initialization (ak je deklarovaná s let/const) var mojaFunkciaVyraz = function() { console.log("svet"); };
Porozumenie hostingu je dôležité na zabránenie neočakávaného správania a chýb v kóde. Použitie let a const pomáha spraviť správanie deklarácií premenných predvídateľnejším.