Šta je hoisting?

Uvod

js this

Često se pogrešno misli da je JavaScript interpretiran programski jezik koji se interpretira tj. direktno izvršava red po red bez prethodnog kompajliranja (prevodjenja jezika na mašinski jezik). Medjutim JavaScript je programski jezik koji se kompajlira pri izvršenju koda (“on the fly“). JavaScript kod se kompajlira svaki put pri izvršenju koda, tako da kvalitet i brzina odziva JavaScripta kao jezika najviše zavisi od efikasnosti Javascript engine koji vrši kompajliranje.

Hoisting promenjive

Deklarisanje i definisanje promenjive su dva različita postupka. “Deklaracija promenjive” je postupak stvaranja promenjive, tada se definiše ime promenjive i obezbedjuje prostor za njeno skladištenje, dok je “definisanje promenjive” postupak kada se promenjivoj dodeljuje neka vrednost koja se smešta u prostor za skladištenje.

Hoisting deklarisane promenjive

Deklaracija promenjive se izvršava pri kompajliranju koda, što znači da se pre izvršenja i jednog reda koda prvo deklarišu promenjive. U okviru JavaScript-a postoji specijalna rezervisana reč “var” koja se koristi da deklariše promenjivu. Pošto se deklaracija promenjive dešava pre izvršavanja bilo kog dela koda sledi da je to isto kao da su promenjive deklarisane na početku koda, ovaj princip se naziva “hoisting” (srp. dizanje).


Continue reading…